Sorted dict 1

Pull request for SortedDict and BalancedTree23 taking into account Kevin Squire's feedback from the past 12 days.
Organizationally, I think it would be nice to have all token related functions grouped together, probably in a separate file, and possibly in their own `Tokens` submodule.

The notion of a token could then be generalized to apply to hash-based dictionaries.  Not everything would apply, of course, but it would make it easier to, e.g., delete items without hashing the key twice.

The implementation could look something like this:

```julia
module Tokens # modules and types can't have the same name in Julia

abstract AbstractToken
abstract AbstractSemiToken

immutable SemiToken <: AbstractSemiToken
    address::Int
end

immutable Token{T<:Associative, S<:AbstractSemiToken}
    m::T
    address::S
end

typealias SDToken Token{SortedDict, SemiToken}
...
```

This would also allow encapsulation and simplification of some of the names below--e.g., `validtoken` and `findtoken` would become `Tokens.valid` and `Tokens.find`, respectively.

What do you think?