Core work

@ericdill You will like `verbosedict`.
I've been doing stuff like: 
```python
try:
    something
except SomeException as se:
    logger.debug('some helpful error message')
    raise SomeException(__name__, se)
```
Where the arguments to the re-raising of `SomeException` I'm not really clear about. But the thrust of my question is that how is the `six.reraise` different from doing what's above (or something similar, take this as an approxiamte example)