Allow manual flushing of a batcher with flushBatch method

Implements part of a TODO item listed in comments in BatchExecutor.scala

Future.batched now returns an instance of class Batcher, which has the added method flushBatch to allow manual flushing/execution of remaining items in the batcher.
seems like this just repeats all of the arguments to BatchExecutor, how about we make the BatchExecutor something we pass in?