Implements __dir__() for Dict, Fixes issue #19

Implements `__dir__` for the Dict class. This avoids the default implementation of `dir()` to get called which checks to see if the object `hasitem('__members__')` and `hasitem('__methods__')`. Obviously the addict `hasitem()` will invoke the `setitem()` since the key does not exist :)

Also adds some tests which validate the above.