fix Dictionary for Python 3

@piskvorky, I hope this fixes the Dictionary issue. It uses the Mapping mixin rather than inheritance from dict. Open question is whether Dictionary should behave like a Py2 dict even in Py3; currently it doesn't and I think it would break the Py3 Mapping contract to do so.

The new test passes in Py2 and 3.