Sorted Containers

Added sorted containers to DataStructures, testing, and documentation.
Replaced README.md with README.rst
Some thoughts about indices:

1. In Julia, `index` already refers to

  a. the location of an element in an array (which also happens to correspond to the rank when iterating)
  b. more generally for collections, the value in brackets that is passed to `getindex` and `setindex!` (e.g., `a[19]`, `d["key"]`, etc.)  

  While your use of `index` is related to both, it isn't really either one.  Would you consider using a different term to indicate a reference to a node, e.g., `node_ref` or `token`?  

  I would prefer something like `token`, because in theory, this interface could also apply to the existing `Dict` implementation, which doesn't have nodes. 

2. My preconceived hope about (and preference for) a `SortedDict` implementation was that it could follow the existing `Associative`/`Dict` interface exactly, making it drop-in exchangeable for any `Dict`, with changes only in behavior (e.g., the keys would be sorted) and performance (e.g., lookup is `O(log N)`).  As soon as a user starts using an `index`/`token` however, the reverse is no longer true--`Dict`s are no longer a drop in replacement for `SortedDict`s (ignoring the sorting part, of course).

    Maybe that's not a big deal, and I can certainly see the value in having the indexes(tokens).  My preference, however, would be to separate out the indexing into another pull request (at least for `SortedDict`--`BalancedTrees` can certainly keep that functionality).  After this implementation gets accepted, the indexing could be submitted, and we can explore implementing the index/token functionality for hash-based dictionaries, so that the implementations can stay compatible.  Thoughts?