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.
Alas I fear it's not so easy since casting as `dict` loses the keyword ordering.