Events framework and widgets

@adrianq @jrmartin I created a new branch/PR to work on this so we can all commit to it. I already added styling to this one. @adrianq do you have anything locally still to commit (the getChildren stuff, etc.)? As soon as we can get all samples working with this I want to merge this!