Namespaced crypt package #2

This PR adds namespaces to all the Crypt\* classes and implements PSR-4 autoloading.

Squashed version.
I do not understand the changes. E.g. addressing "Assignment in condition" should be done by moving the assignment out of the if statement. Anyway, I also do not want to have to review those as part of this PR. Please undo everything that is not directly related to namespacing.