Adjustments, incomplete, for working the python3 code in 2.7

This fails in the tests at the same point for both versions.
Further progress on making tests run with python3

Currently all tests pass (with this code) with python2.7.

Still some distance to go with 3, issues are mostly related
to unicode handing. There is now quite a lot of duplicate with
the various fixups that are in place (notably the basestring and
unicode stubs). These should be refactored later.

So too the use of content.decode() after an httplib2 request.
We should have a single request_unicode of some kind for those
places that need it.

Committing as a checkpoint.

Note this will fail for travis as it does not yet have
access to the correct httpexceptor. Fixes coming soon.