Expand Unit Tests and add deriveKey

This PR adds the deriveKey method which encapsulates the algorithm used to calculate the qualified key (i.e. prefix + key) by the service.  This method is intended to support white box testing scenarios that seek to verified that the expected value is stored in the expected location by asking the service the fully qualified key used to store the value.  In order to ensure the fidelity of this modification, all occurrences of qualified key calculation where replaced with calls to deriveQualifiedKey.  Finally, the unit tests for the deriveKey method, as well as, a variety of add scenarios and key removal.