EventBusParser: make the bus field protected instead of private

Other people may wish to use the bus for their own purpose.
New event bus model

Instead of registering events by name and doing reflection, use ValueBuilders.
Increment version number! Oops...
EventBusParser: make .*Event() public...

Can't work otherwise. Meh.
Completely change the event API
EventBusParser: more doc
More documentation for EventBusParser
Revert changes to {StringBuilder,}Var

They are horrible but they are widely used :/
Readme updates