deque: Remove rendundant field hi

The deque is determined by vec self.elts.len(), self.nelts, and self.lo,
and self.hi is calculated from these.

self.hi is just the raw index of element number `self.nelts`
deque: Add tests for mut_iter and mut_rev_iter
deque: Change iterators to use the same index calculation as Deque

The previous implementation of reverse iterators used modulus (%) of
negative indices, which did work but was fragile due to dependency on
the divisor.
deque: Move the shorter part when growing

The deque is split at the marker lo, or logical index 0. Move the
shortest part (split by lo) when growing. This way add_front is just as
fast as add_back, on average.
deque: Implement Deque::with_capacity. Lower initial capacity to 8.

We need a reasonably small initial capacity to make Deques faster
for the common case.
deque: Remove obsolete methods .each() and .eachi()