Automatically resize and re-scroll when new blocks are created.

Added a rudimentary events system to avoid hard-coding this behavior
or overriding core functionality.