Modified print statements to work with python 2.x and 3.x
Modified occurrences of str and unicode to make it work with python2.x and 3.x

Since unicode from python2.x is (almost) equal with str from python3.x and
bytes works different in each version it's necessary to check the version
before working with this classes.
I added the module util.py2and3. It contains functions that make it easier to
work with both python 2.x and 3.x.
Replaced direct comparisons with type(obj) with isinstance(obj, type)

Using isinstance instead of comparison with type(obj) is much better because
it won't break if you use either subclasses of the type you are comparing to
or the return type of type() itself changes in different versions.
Added .module syntax for relative imports

In python2.x you can import without using the .module syntax but in python3.x
it does not work, so we use the syntax that works for both.
Removed some minor culprits
Added util.py2and3.RawData and util.py2and3.String for future use