objtype: Wrap .__name__ handling in MICROPY_CPYTHON_COMPAT.

Because it's runtime reflection feature, not required for many apps.
Rant time:
Python could really use better str() vs repr() distinction, for example,
repr(type) could be "<class 'foo'>" (as it is now), and str(type) just
"foo". But alas, getting straight name requires adhoc attribute.
py: Wrap .__class__ handling in MICROPY_CPYTHON_COMPAT.

Because it's superfluos in the presence of type(), a remenant from Python's
"old classes".