Initial work on custom renders
Add unit tests
Initial support for custom elements

- TODO: need to fix the erase/draw cycling for certain actions, like
  adding/removing/clearing the item collection, setting filters, and
operations that might run through a draw cycle, but nothing is actually
drawn, because nothing has changed.

- I think the main problem is that when a render cycle runs, and nothing
  is actually drawn, the viewport:all:renders:drawn event is not
emitted.