entity: A generic class for any object with attrs that may be visible over the API

Alot of python class voodoo, but from the outside it forms a nice, simple way of specifying
exposed attributes and operations.
Replaces alot of characters.py.
Unfinished.

Signed-off-by: Mike Lang <mike.lang@orionvm.com.au>