Sorted dict 1

Pull request for SortedDict and BalancedTree23 taking into account Kevin Squire's feedback from the past 12 days.
While I appreciate the effort you've gone through to make one iterator do multiple things, I think I'd like to see this broken up into two different iterators.

The default iterator would simply return `(key, value)` tuples, and not tokens at all.

For tokens, I would create an iterator that could be used something like

```julia
for token in tokens(sorted_dict)
   # ... do something with the token
end
```
or
```julia
for (k,v,token) in tokens(sorted_dict)
   # ... do something with k, v, and token
end
```

This would also allow tokens to be more easily generalized and used for other associative types.

(I like `tokens`, but it could be `token_iter` or some such.)