Fix an "index-vwf" reference.

This is a follow-on change from commit:184f459 now needed after the
branch/threejs merge to development. Also see commit:ef1bbcf.
Clarify the action-considered-performed comments.
Add the `childURI` parameter.
Delegate `node.uri` to the kernel. Make `node.id` read-only.

References #1918.
Replace `childURI` with `childIndex` and expand initializingNode.

For global nodes, pass the URI as the childIndex/childURI argument as
before. But for descendant nodes, pass the index number of the child's
position in the parent's array instead. Nodes can load out of order, so
the drivers need to know where to attach the new node.

Also, provide the `creating`/`createdNode` arguments to
`initializingNode`/`initializedNode`. Drivers that only need the
`childIndex` or other parameters when the node finishes construction
won't need to store them when it starts constructing.

References #1918.
Add @function tags and callback types.

Parameters weren't being rendered since JSDoc didn't know they were
functions.
Establish the parent/child relationship before calling `creatingNode`.

While the kernel passes parent/child information in the `creatingNode`
and `createdNode` calls, that relationship wasn't registered until after
the child node was fully constructed.

This commit creates that relationship early so that drivers may query
the kernel for information about a node's parent and ancestors while the
node is being constructed. Since the parent/child relationship is
provided to the `creatingNode`/`createdNode` and
`initializingNode`/`initializedNode` calls, drivers are now expected to
make any internal associations there, and the kernel no longer calls
`addingChild` and `addedChild` to direct drivers to do this explicitly.

Note that model/javascript still defers assigning `node.parent` until
the node is fully constructed since application-level code shouldn't
have access to parts of the application under construction.

Fixes #1894.
Keep child array order consistent with the child list in the component.

Previously, when creating child nodes from a component, only the
name-based associations were consistent. Child nodes load in an
unpredictable order, so the number-based associations could describe a
different order from that of the component. The order could be different
on different clients as well.

For example, for the component:

  ---
  children:
    alpha: ...
    beta: ...

`node.children.alpha` and `node.children.beta` always referred to the
correct nodes, but node.children[0] and node.children[1] could refer to
either `beta` or `alpha`, and that association could be different from
client-to-client and run-to-run.

This commit moves initial registration of the child node ahead of
where its prototype and behavior dependencies are resolved so that
children appear at the parent before they perform any async operations
and in a consistent order. Along with the childURI/childIndex change,
drivers can now maintain a child array in the correct order.

The server must also maintain the child order when loading components
and converting to JSON, but this is now the case since Ruby 1.9.3 is the
minimum requirement.

Closes #1918.
Give the child index priority when the name looks like a number.
Remove the `hash uri => id...?` comment since there is no performance issue.

See http://jsperf.com/lookup-performance-with-varying-key-length.

- Chrome and Firefox are unaffected by key length, except that Chrome is
  much faster with 1- or 2-character keys.

- Safari and IE are affected, but Safari only begins to slow after 128
  characters. IE slows significantly after 16 characters, but presumably
  this will eventually improve.