Python 3 support

Add python 3 (>= 3.3) support while maintaining support for python 2.7.X. As a result support for python versions < 2.7 has been dropped.