Flush and delete

Alright @nova77 - here's how I'd do flush and delete.

Delete drops the queue from the queue_map, and tells it that within the dtor it should delete all its data.  But it uses the shared_ptr semantics of other clients that might still be using the queue to keep it alive, and keep the journal available, until all clients have gone away.

The flush implementation is much simpler.