Implements a proper finite state machine on cache entities, as indicated in the documentation drawing. Bundles are held for an age-out period after deletion before final discard. If duplicate bundles arrive at any point while a bundle is present in storage, it will regenerate a custody ACK but will not store the bundle a second time.
Additionally this moves the "cache" service to a separate module and splits it up, as it was growing too large for a single source file.
Implements a proper finite state machine on cache entities, as indicated in the documentation drawing. Bundles are held for an age-out period after deletion before final discard. If duplicate bundles arrive at any point while a bundle is present in storage, it will regenerate a custody ACK but will not store the bundle a second time.
Additionally this moves the "cache" service to a separate module and splits it up, as it was growing too large for a single source file.
Fixes #99