Collection events

Send meta events from the kernel into the application notifying the application about changes to the `children`, `properties`, `methods`, and `events` collections. Add pseudo events at `node.children.{added,removed}`, `node.properties.{created,initialized,deleted}`, `node.methods.{created,deleted}`, and `node.events.{created,deleted}` to manage listeners for the meta events.

@eric79, @allisoncorey, please review. @scottnc27603, @jessmartin, fyi.

OK.

`createFixture` creates a series of nodes, and when the deepest node is ready it calls `callback` to run the test. When the test completes it calls back here and we clean up the nodes we created.