Tests: skip cpo testing on Mac
Drop custom md5 finder and use only hashlib

This module was introduced so that we could use the md5 function while
Python transitioned from the md5 module to hashlib.  The md5 module was
deprecated in Python 2.5 with the recommendation to use hashlib.

Since Python 2.6 is our new minimum we can safely remove this code.
parse_qs moved to urlparse

In Python 2.6 parse_qs was copied from cgi to urlparse modules.  Thus we
remove the try clauses that attempt to import from cgi.

Ref: http://docs.python.org/2/library/cgi.html#cgi.parse_qs
and http://docs.python.org/2/library/urlparse.html#urlparse.parse_qs
pysqlite2 not nneded since Python 2.5

sqlite3 was introduced in Python 2.5 so we no longer need pysqlite2.
See http://trac.edgewall.org/wiki/PySqlite and
http://docs.python.org/2/library/sqlite3.html
Decorators: use @classmethod
Use modern except syntax

Replace:
    except SomeError, e:
with:
    except SomeError as e:

This is Python 3 syntax and available since Python 2.6.

Code that we've copied in has not been updated.  The hope is that we can
get rid of those pieces.
Drop use of simplejson

Since json is a standard library as of Python 2.6 and 2.6 is our
baseline target we can drop the need for simplejson.
Add missing import

Fixes bug 3174.