BUG: honor repr() of proper subclasses of dict/ODict in pprint_thing

#3251

Have to consider corner cases before merging, rebased on top of #3252