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.

It would be. When the kernel node registry is in place, the kernel validate arguments to be sure this condition doesn't occur. This is a defensive test for now.