Implement common dictionary and 'magic' methods in Hashes and Sets.

I noticed that there were some commonly used dictionary methods that were missing from the `SharedHash` class, though it does appear to follow much of the common Python `dict` interface. This adds some of those missing methods like `get`, `pop`, `iterkeys`, `itervalues`, etc as well as some "magic" methods for things like `len(hash)` `key in hash` `len(set)` and `value in set`.

Also, I noticed that while the `SharedHash` class implements the common Python `dict` methods, the `set` doesn't follow the Python `set` implementation very closely and is certainly missing many of the methods of the `set` interface. Obviously, both the `dict` and `set` are very commonly used in Python, so I would think it would in the interest of consistency to "implement" those interfaces on shared objects. I will gladly do another PR for the set interface if that is the intended behavior.