WIP since initial review - squash 12 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.
Implement sync info tracking and getting all addrs.