iterator: add an adaptor for reversing a container

this works on any container with a mutable double-ended iterator