Add SecretStore interface

This adds a new SecretStore interface. This interface creates an abstraction
for managing secrets. The current abstraction supports the basic methods of
generating, storing, retrieving, and deleting secrets.  This allows secrets
to be stored outside of Barbican.

Future implementations of this interface will be:

* BarbicanHSM - for storing secrets in a hardware security module
* Dogtag - for storing secrets in a Dogtag DRM
* KMIP - for storing secrets in a KMIP server

Change-Id: I3794d3a28ea547d740a1110a085ab1c549abfcc7
Implements: blueprint create-secret-store
Merge "Add SecretStore interface"