Adds `Channel` to contain buffer.

This commit is the first step to providing a default block to contain
layouts. The `Channel` class contains the output buffer. The active
channel can them be switched out to provide multiple buffers.

Note: Used an object buffer instead of an array based on performance
tests. Tests can be viewed at http://jsperf.com/array-vs-object-buffer.
Adds explicit `endblock` command

Adds an explicit `endblock` statement to close layout blocks. If a
block is not closed before another block is opened or the end of file is
reached, an exception will be thrown. Any content not contained inside
of a block/endblock section will be added to the `default` block.