First attempt to refactor a base Homogenous Block class

Each extending block needs to define a `components` property as an
object with the container selector as key and the tag name as value.

Click on add or remove buttons will use this `components` property to
insert or remove the element.

The base class also defines a few more callbacks:

* `onElementAdded`
* `beforeElementRemoved`
* `onElementRemoved`

The render callback for the extending block is now `onUIRendered`.

See existing blocks for examples.