Python 3 support

Add python 3 (>= 3.3) support while maintaining support for python 2.7.X. Note: there is no longer support for python versions < 2.7.