Backward-Incompatible Python 3 Support

Changed loading mechanism to be dynamic, so we won't have to change a list for every handler added. Python 3 support was added, but it's not likely to work with Python 2.7.x anymore. As the dynamic loader scans all the modules, it was needed to mark base classes as abstract to remove them from the list.

As this changes a lot, you can completely ignore this pull request, as you may not want all the hassles of these changes to your code.