Update crypto plugin interface to support Dogtag

The Crypto plugin interface needs to be modified to support
a Dogtag DRM plugin.  Specifically, we will replace the create()
method with a new generate() method that returns the same values
as encrypt().

The plugin interface is also modified to pass data to the decrypt(),
encrypt() and generate() calls using DTO objects.  This will allow
the interface to more easily extended to pass more data in future.

For instance, it will later be necessary to pass a wrapping key for
encrypt() and decrypt() operations in case we want the secret to be
completely encrypted from end to end.

We have chosen not to create the secret in the database earlier to
generate a UUID for the DRM to use as a client key ID.  Rather, a
random value will be generated by the dogtag DRM plugin.

Implements: blueprint update-crypto-plugin-interface
Change-Id: I508321697c8a4557d1e35cd5a9e8f0affd992cd5
Merge "Update crypto plugin interface to support Dogtag"