feat(events): Add data events

This adds load, remove and clear data events.

This also adds a columns.on.change event, and fix an issue with rows swapping.

When loading demo, generate columns was called 3 times. It's now only called once.

Close #211