py3 compatibility without 2to3

* use six for patching any backward incomptible code
* fix up use of has_key for dictionaries.
* run tests in travis directly with nose.