DotDict deepcopy

We were having issues doing a `deepcopy` on a `DotDict` because we were mapping `getattr` to `dict.getitem` and not handling the fallback case. This patches that.

There is [another, mutually exclusive, PR open](https://github.com/yola/yoconfigurator/pull/23) that swaps out `DotDict` for `BetterDict` since `BetterDict` seems to simulate `dict` behavior more closely. @thomasw is intimately familiar with `BetterDict`