allow unicode URLs on Python 2

on Python 2 u'é'.decode('utf8') fails with UnicodeEncodeError,
but only AttributeError is caught.

This only calls decode on known bytes objects.
Re-order params for backwards compat
Merge pull request #2267 from minrk/unicode-url-py2

allow unicode URLs on Python 2
Merge pull request #2268 from sigmavirus24/fix-params

Re-order params for backwards compat
v2.4.3
v2.4.3