Node references

Allow properties to directly reference nodes. Previously, properties couldn't contain a node reference in a way that was meaningful outside of `model/javascript` or that would survive replication.

This is a predecessor to `branch/collection-events`, which needs to send a node reference in `node.children.added` and `node.children.removed`.

@eric79, please review. @allisoncorey, @scottnc27603, @jessmartin, you also may be interested.

Changed the `kernel/utility` fields `nodeTypeURI` and `nodeTypeDescriptor`
to `protoNodeURI` and `protoNodeDescriptor`, respectively, since the old names were similarly ambiguous and referenced the outdated concept of a node as a _type_, then changed `nodeNode` here to `protoNodeNode` in symmetry.