Switched bitv to external iterators
Derive Clone for bitv stuff
Removed unecessary indirection in Bitv

BitvVariant is the same size as it was before (16 bytes).
Added iterator tests
Added bitv iterator benchmarks
Add slice_from and slice_to methods for vec, like the
methods of the same names that already exist for strs.
serialize: implement Encodable for DList

This impl was missing for unknown reason.
dlist: Simplify match clauses to use Option methods

Make the core Deque implementation a bit simpler by using Option methods
when we simply map on a Some value, and deduplicate some common lines.
dlist: Factor out pop and push operations by list node

Factor out internal methods for pop/push ~Node<T>, This allows moving
nodes instead of destructuring and allocating new.

Make use of this in .merge() so that it requires no allocations when
merging two DList.
dlist: Add .rotate_to_front(), .rotate_to_back()

Add methods to move back element to front or front element to back,
without reallocating nodes.
Remove what appears to be redundant indirection from
os::list_dir_path.
dlist: Add bench test for rotate_to_{front, back}
dlist: Remove bench tests for vec

These tests for ~[] performance don't really belong here, they were for
comparison.
dlist: Use Ord for .insert_ordered()

We don't need TotalOrd for ordered insertion, just the normal sort order
Ord.
dlist: Remove extraneous unwrap in .pop_back_node()
Eliminated SmallIntSet

SmallIntSet is equivalent to BitvSet but with 8 times the memory
overhead. There's no reason for it to exist.
Minor cleanup of hashmap
Cleanup libsyntax a bit
Exposed previously hidden 'use' statements in the tutorial's sample code.
dlist: Fix .peek_next() w.r.t double ended iterators

.peek_next() needs to check the element counter just like the .next()
and .next_back() iterators do.

Also clarify .insert_next() doc w.r.t double ended iteration.