Python 3 Support

I've finished making the library compatible with Python 3.

Changes include coping with incompatible imports and names (e.g. ifilter, basestring, iteritems), and updating doctests.

The changes needed for the doctests are described here, http://python3porting.com/problems.html#handling-expected-exceptions

I've used a modified version of the example provided there.

Tests were run on python2.6, 2.7 and 3.2.  I did not update tox.ini to specify py3, because I don't know if it should point to 3.2 or some other 3.x version.  I used `tox -e py32 voluptuous` to run the tests for that.