Transition from 2to3 setup code to use of six.py as py2/3 compatibility layer

As a result from discussions in #373 we decided to try using six as a compatibility layer across python versions instead of on setup 2to3 conversion which might not work in certain environments.