Port to Python 3

These commits port urlobject to Python 3 while keeping compatibility with Python 2.6+ in a single codebase. Python 2.5 isn't supported because it doesn't provide unicode_literals, and then things get hard (it would make sense to do the port as a separate project if you want to keep Python 2.5 compatibility).