Add a basic test for Subscription#Ack
Add Subscription#Nack
One more arity
Documentation updates
merge default into bug26097
Synchronise Subscription methods that mutate m_lastEvent
Parametrise SubscriptionDrainer with a field instead of subclasses
No need to synchronise MoveNext because it only delegates to Next
Nack/1 and Nack/2 can simply delegate to Nack/3
Can use slighly less coarse-grained locking here

evt is a local variable and thus cannot possibly be shared
Ditto for Ack
Ack/0 can simply delegate to Ack/1
Avoid AlreadyClosedException where we can
Add timeout to this test
More fine-grained locking, extra a method that performs synchronised writes
Refactor concurrent Subscription iteration test, join created threads
Timer is no longer necessary here
Close subscriptions at the end of drain run, increase concurrency
Reduce verbosity of the tests
Cosmetic (layout, brace alignment)