Message queue: add `enqueue` option for treating locked messages as non-dupes

This gives us another mechanism for eliminating race conditions: much simpler
for API consumers (though slightly less flexible) than using `finalize` with
an atomic handler.
Tundra: add TODO
Tundra: completely refactor to use standard mq worker

Pros:
* Significantly simpler.
* More robust (uses trusted, tested mq for heavy lifting).
* Inherits mq features like retry & backoff.
* Allows better datastore work distribution (freezing isn't done in batches).
* Easier datastore protocol extension (works on single keys rather than maps).

Cons:
* Old batching method -may- be preferable against certain stores.
Tundra: refactor Faraday DataStore for new API
Tundra: add S3 DataStore, skeleton disk & Carmine DataStores
README: Clean up Tundra docs, mention new S3 impl, alpha->beta
Tundra: new unit tests
Deps: bump-> Nippy v2.5.0-beta2
v2.4.0-beta2