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.

Is this an error condition?  (the child thinks it has a parent, but the parent doesn't recognize that it has that child)