Extract key generation to KeyGenerate class

This makes life easier in clients if you want to generate keys
for reporting.
Document the KeyGenerate
Version bump