[#1530] use passlib for passwords

if a user has old password hash, upgrade them on successful login
[#1530] Allow unicode.
[#1530] upgrade pkbdf2 hashes if passlib upgrades default_rounds
[#1530] sort dependencies, get travis to install swig
[#1530] Add tests, use utf-8 for FriendlyForms

FriendlyForms defaults to latin-1 this means that request parameters
would get encoded as utf-8 strings and then interpreted by FriendlyForms
as latin-1, so you would end up with a python mangled unicode string
containing utf-8.
Add an extension point for exception logging middleware

For use with things like Sentry, Newrelic etc.

For more discussion of this issue see:

https://github.com/ckan/ckan/pull/1799
Catch AttributeError and log a critical error
Fix log message to be Python 2.6 compatible
[#1530] remove swig, M2Crypto

change importing sytle in tests for passlib.hash
[#1530] add doc string/PEP8/import style fix
Merge branch 'error-log-middleware-extension' of https://github.com/morty/ckan into morty-error-log-middleware-extension
Merge branch 'morty-error-log-middleware-extension'
Merge branch '1530-use-passlib'