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?


I'm not sure why we need the `iteritems` at all, given that we are going to iterate the whole thing.  Even the `copy()` is unneded, as the loop body doesn't mutate the function's locals:

    for key, value in locals().items():