Port python bindings to Python 3

Here I'm going to address remaining issues by merging changes from my diverged fork that made Protobuf 2.5.1 compatible with Python 3 by retaining compatibility with all other supported versions.

I kindly ask authorized developers to review and leave comments and I'll try to address them as soon as I can.

A few questions:
- Did you loose the requirements for minimum Python 2 version?
- Most tests are missing here: https://github.com/GreatFruitOmsk/protobuf/blob/master/python/setup.py#L100-L102. Why?


Given that we rely on `setuptools` (boostrapping from `ez_setup.py` if it isn't present), we should be able to use its `find_packages()` rather than enumerating modules by hand.