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.
please add an explicit return type for all public methods