bukkit: generic BatchingTask mechanism

The reusable parts of BufferedBlockWriteTask have been extracted into
the new BatchingTask abstract class, which can be extended for use with
any operation that needs to be performed in batches over a variably
sized collection.
bukkit: BufferedBlockWriteTask -> BatchingBlockWriteTask

The new BatchingBlockWriteTask is a simplified version of the old
BufferedBlockWriteTask that takes advantage of the newly extracted
generic BatchingTask abstract base class.