not using Bearer Auth if not access token supplied
incrementing version
updating CHANGELOG
using color for Travis builds
correcting docstring typo
fixing a bug where multiple requests on the same session did not validate
updating Requests
Prevent double encoding of oauth_token in get_authorize_url

urllib.urlencode automatically applies urllib.quote_plus to all keys
and values, so applying urllib.quote before hand will result in double
encoding of the token.

This double encoding doesn't cause a problem, of course, if the token
consists of regular characters. But an equals sign (=), for example,
would get encoded once to "%3D", and then again to "%253D".
Add regression test for handling url encoded characters in get_authorize_url
add and use compat module for imports varying across 2.7 and 3.3

also replace isinstance(var, basestring) checks with is_basestring,
in case the value of basestring would ever NOT be used in
isinstance(var, basestring) - using basestring = (str, bytes) is clever
but the semantics are not quite clear.

and use a wrapper for iteritems() to ensure we get an iterable in
both versions (but this is only used once, in test_service_oauth1.py)
overloading str in py2 to point to unicode, for py3 compat
updating README and convert from md to rst
making sure we don't regress on double quoting
bringing session mockup in line with reality
cleaning up
making sessions and services serializable
using flake8 in place of pep8 and pyflakes