config: added a few methods to handle basic manipulation of a secondary key map
Added an init method to fill SecretKeys in config.
Removed sha1 index, memberlist probably doesn't need it.
Do multiple passes over decrypting payloads if multiple keys are configured
Added test for decrypting success when the first key doesn't match.
Formatting adjustments
Guard against enabling encryption by adding a key. Added tests.
Added test for calling UseKey() on a key that doesn't exist.
Removed unnecessary memberlist creation from key tests
Allow AddSecretKey() to succeed if the key already exists (just noop). Added more tests.
Reduce code footprint using a function to order keys
Guard against starting if secret keys are provided without a primary
Set keys in order inside the config structure rather than ordering keys on each message
Directly use SecretKeys rather than reassigning
Break out key functions into keyring structure. Implemented mutex on keyring.
Updated documentation for keyring
Broke out keyring tests from memberlist_tests
Keep the EncryptionEnabled indicator at the config level rather than inside the keyring.
Renamed to installKeys(), updated comments
Added more tests for multiple keys scenarios