Namespaced crypt package #2

This PR adds namespaces to all the Crypt\* classes and implements PSR-4 autoloading.

Squashed version.
Do we still need those two require statements? If yes, why? If no, please remove them as you did above.