feat(registry): abstract out storage backend for Registry

This is something of a proof-of-concept/WIP draft.

    Following on from the creation of the Registry interface, this creates a
    Storage interface to encapsulate where Registries actually store their
    data. The intention is to allow proper testing of the main fleet registry's
    code (including serializing/deserializing, etc) and reduce the coupling of
    the Registry with etcd.

    This change adds an example MemoryStorage template (which requires further
    implementation to facilitate tests which are actually useful)