Factor out the namespace name test. Accept `["name"]` as not namespaced.

References #3076.
`kernel.{createEvent,addEventListener,removeEventListener}` API comments.

References #3076.
Only create the per-event listener array on `addingEventListener`.

References #3076.
A kernel utility module.
Translate between kernel and model/javascript node references.

The translation is performed for each value (property value, method or
event parameter, or return value) that crosses between the kernel and
the model/javascript driver. This allows components to make persistent,
direct node references. Nodes may be assigned to properties and passed
through methods and events.

References #3088.
Replicate node references.

Regular properties replicate as `{ propertyName: value, ... }`, or the
more general `{ propertyName: { value: value }, ... }`. Extend the
general form to encode properties containing node references as `{
propertyName: { node: nodeID }, ... }`.

The `node` field indicates that the property is a node reference instead
of a simple value. Using a distinict field ensures that the reference
won't be confused with any other value that could otherwise resemble a
node ID.

References #3088.
Support property node references in `kernel.createChild`.

Support properties containing node references in `kernel.createChild`,
in addition to `kernel.setNode`. Node references are only valid during
replication, but properties of nodes created during replication are
assigned in `kernel.createChild` and not `kernel.setNode`.

Node references are property descriptors in the form:

    { properties: { p: { node: id } } }

This is in contrast with regular property values, which have descriptors
in the form:

    { properties: { p: { value: v } } }
Accept node references in `node.children.create` component descriptors.

References #3088.
Factor out `parametersKernelFromJS` and `parametersJSFromKernel`.

References #3088.
Clarify names that reference the proto-prototype node `node.vwf`.

Rename the `kernel/utility` items `nodeTypeURI` and `nodeTypeDescriptor`
to `protoNodeURI` and `protoNodeDescriptor`, respectively, to better
reflect that they refer to the proto-prototype node.

Rename the `model/javascript` internal variable `nodeNode` to
`protoNodeNode` so that it parallels the `protoNodeURI` name it derives
from and to hopefully clarify that it is the `model/javascript`
`...Node` data for the `protoNode...` node.

References #3088.
Support namespaced events to be used for node meta events.

Namespaced events will allow the kernel to use the normal event
listening/firing mechanism for meta events that are distinct from a
node's regular events.

Meta events will announce changes to a node, such as adding and removing
children, creating and deleting properties, methods and events, etc.

References #3094.
Attach meta events to the node collection objects.

References #3079.
Send meta events from the kernel.

References #3080, #3077.
Suppress kernel reentry for meta events during replication.
Comments.