Python 3 support

Resurrecting my old `py3` branch, since #271 shows there is interest in getting XBlock running on Python 3.
I tried it like this:
```python
class XBlockMetaclass(
        TagCombiningMetaclass,
        HierarchyMixin.__class__,
        # This duplicates the HierarchyMixin, so we can't include it here
        # XmlSerializationMixin.__class__,
        ScopedStorageMixin.__class__,
        RuntimeServicesMixin.__class__,
        SharedBlockBase.__class__,
        HandlersMixin.__class__,
):
    pass

XBlockSuperclass = six.with_metaclass(
    XBlockMetaclass,
    HierarchyMixin.__class__,
    XmlSerializationMixin.__class__,
    ScopedStorageMixin.__class__,
    RuntimeServicesMixin.__class__,
    SharedBlockBase.__class__,
    HandlersMixin.__class__,
)
```
But it still wasn't happy. Do I need to remove `XmlSerializationMixin.__class__` from `XBlockSuperclass`, as it's removed from `XBlockMetaclass`? Do I need to include `TagCombiningMetaclass`? I tried a couple of variations, and I still keep getting test failures.