Add an ImproperlyConfigured exception.

 - To be used to signal when a type is being used without a
   required library.
Add password type.
Expose the Password wrapper.
Have travis install passlib.
Merge remote-tracking branch 'origin/master' into topics/password

Conflicts:
	.travis.yml
	setup.py
Rename .raw to .hash
Merge branch 'master' into topics/password

Conflicts:
	setup.py