Fixed and updated `iterator.hpp`.

- Removed `begin` and `end` from `transform_iterator`.
- `transform_iterator`s now have `iterator` instead of `iterator_type`.
- Added reverse iterator support for `container_base`.
- Added `reverse_range` & some tests for it.
- Undeprecated & fixed `get_iterator` but it's now called `iterator_type` and
  resides in `utility.hpp`.
- Better documentation for `container_base` dependencies.
- Various improvements to `container_base`.