WIP since initial review - squash 13 commits
Allow injection of crypto keys into the manager.

Useful to test error conditions.

Also provide a new function that wraps snacl.GenerateCryptoKey(),
defined as a variable so that it can be replaced in tests.