Implemented a layered world generator

Signed-off-by: Irmo van den Berge <bergerkiller@gmail.com>

Allows vertical layers of specified heights to be filled into the buffer. New methods in the buffer are added to optimize this filling, combined with a test to ensure this never breaks unnoticed.

The layered world generator uses a list of layers, a y-range with the id and data of the block, to be specified. This should be done in the constructor of the world generator that extends this one.