Configure the expiration bundle
Set up expiration on individual documents

Using the current implementation of the expiration bundle, one must specify expiration date explicitly for each individual message. See https://github.com/ayende/ravendb/blob/master/Raven.Database/Bundles/Expiration/ExpiredDocumentsCleaner.cs#L47

While the deletion process runs once every 24hr (see previous commit), in our scenario it probably makes more sense to define the expiration index differently - to use the configured time span for deletion when deciding which document to delete. We can probably also reuse the standard messages index.

I think we want to roll our own bundle by mostly copy-pasting.
Expiration settings
Custom expiration bundle to expire docs ServiceControl's way
Saner default
No need to query again if we got less results than the requested page size

Correlates with ayende/ravendb#593
Default expiry threshold was spec'd to be 30 days
Expiring Status:ResolvedSuccessfully as well

As per https://github.com/Particular/ServiceControl/issues/116#issuecomment-34890890
Some tests to cover basic scenarios
CancellationTokenSourceExtensions not being used

Small cleanup of comments
Cleanup
Merge branch 'expiration' of github.com:Particular/ServiceControl into expiration
Merge remote-tracking branch 'origin/develop' into expiration
Removing expiration read trigger

In RavenDB, when a document is expired it stops being visible immediately (for both queries and load operations) and deleted on a first chance basis (depending on indexing performance).

For various technical reasons (commit 00c8201 and the fact we are not holding the criteria for expiration in the metadata), it is going to cost us a bit to do the same type of blocking.

That's sort of an edge case really, but worth noting. Side effect is there will be a twilight zone around the expiration threshold (which is constantly moving) where messages may or may not be visible, and conversations will/might appear partial (which will be the case anyway, actually).
Merge remote-tracking branch 'origin/develop' into expiration
Remove redundant code
Fix test (started failing after bringing tests in line with core product wrt enums as integers)
Merge pull request #220 from Particular/expiration

Auto-expiration of audit messages