Create AckStrategy delegate, use named delegates as strategies
replace parameter with explicit methods.
have error handler return the strategy to use instead of an enum
so we can lookup the strategy to use.
BREAKING CHANGE - Can be mitigated by returning equivalent
delegate from AckStrategies class
consolidate exception handling code paths
consolidate message acking code paths
extend consumer error strategy to enable user to provide a strategy
for handling scenarios where the user handler task could be canceled.
default behavior continues to ack message.
backfill test for ack strategy delegates
handler calls HandleConsumerCancelled when handler task is canceled