Fixes https://github.com/mewwts/addict/issues/19 - implements __dir__() for Dict

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.