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 know that you already mentioned needing to fill in more comments, but I thought I would call it out specifically so it doesn't get forgotten.  :smile: