Move some things out of runtime/capi.cpp into capi/ (NFC)

Move some type-related stuff into typeobject.cpp or descrobject.cpp
Start moving towards the way CPython implements slots + wrappers

- Start moving towards slotdefs
- add tp_repr support
- add an slots_tester extension module so we can test these more narrowly