Subclass OrderedDict to provide pretty-printed str representation

This pull request fixes #905

I've added one test on the new __str__ method.

I didn't modify CHANGES.rst as I'm not sure if this is a new feature or an API change.