Better class defs

Some changes to make it easier to create methods on builtin classes. The main result is that something like
```python
@wrap_method(['interp', ThisUnwrapper(W_ReflectionFunction)],
    name='ReflectionFunction::getDocComment')
def get_doc_comment(interp, this):
    return interp.space.wrap("")
```
is replaced by
```python
@k_ReflectionFunction.def_method(['interp', 'this'])
def getDocComment(interp, this):
    return interp.space.wrap("")
```
As a proof of concept, I converted `hippy.module.reflections` to the new paradigm.