SASL SCRAM-SHA-1 module

As result of poorly timed coffee cup and in the interest of supporting secure _and_ standard SASL mechanisms (so that there are better chances of clients implementing them), I've implemented the [SCRAM-SHA-1 (RFC 5802)][1] mechanism for SASL.

It requires the passwords to be stored in PBKDF2-SHA-1 (while crypto/pbkdf2 uses PBKDF2-SHA-512), but has the advantage of authenticating the server (services) as well.

Currently it's one of the required-to-implement mechanisms for XMPP, where it replaced DIGEST-MD5.

[1]: https://tools.ietf.org/html/rfc5802