Take @laszlopandy's advice on naming of Getters

Also add “when” and “filterMap” functions for creating custom Getters
Better naming, fix boolean attribute bug

Create the concept of Facts which are not just String pairs so that
vdom will do the right thing.

Also give better types for node and eventNode
Update for recent changes