Replicate method changes

Track changes that occur to methods after initialization and include them in the replication state. Deconstruct `function` objects that have been synthesized at runtime into JSON-serializable representations.

This is a new pull request off of `development` now that the `branch/kernel-listeners` dependency has been merged.

@eric79, the actual replication bits are missing still, but this is good to start reviewing.

I'm not requesting this, but why is there no `initializeMethod` like there is for property?  Perhaps we've realized that `initializeProperty` isn't actually very useful to applications and drivers so we've decided that we don't need one for methods?  I could support that.  In all the applications I've written, I don't believe I have ever intentionally wanted to perform any logic on `initializingProperty` or `initializedProperty` ... of course `initializedNode` is a completely different story.