Namespaced Crypt Package (Final)

This PR adds namespaces to all the Crypt* classes and implements PSR-4 autoloading.

Final squashed version, replaces #558.