Added "reversible_view" to allow iterating forward/backward through a range based on a template parameter