Features/refactorization

* remove needless `tp_getattro` entries
* use `PyObject_New()` for object instanziation through the whole lib
* use if possible just basic types for objects (instead of `PyObject*`)
* arrange types in `types.h` into logical groups (syntax)
* use utils helper macros/functions through the whole lib
    * use to_unicode()/to_unicode_n() for creation of unicode strings
    * main support switch to python3 instead of python2 (provide defines for python2)