Pass the read-only kernel functions generically.

They all pass straight through so there is no need to handle each one
separately to be able to reinterpret the arguments.
Finish `kernel.prototypes( ..., includeBehaviors )`.
Kernel documentation updates.
Register nodes with the kernel before `creatingNode` rather than during.

The kernel delegates node metadata, such as the name, source/type
fields, and the prototype and behaviors lists, to vwf/model/object. But
since vwf/model/object is the last driver, relying on the normal order
for `creatingNode` prevented other drivers from asking about prototypes
and other node information in their `creatingNode` handlers.
Clean up nodes between tests.
Hide references to ancestors from uninitialized nodes in applications.
Accept `undefined` for `rootID`.
Add `kernel.application` to identify the application node.

Removes `index-vwf` references from the kernel and drivers and should
allow any remaining assumptions about the `index.vwf` application name
to be removed.

Closes #1748.
Remove obsolete, unused `useLegacyID` conditions.
Remove unneeded property setters on terrain. Fixes #1720.
Update driver configuration to look for a config file of the same name as the application, rather than a hard-coded index
Merge branch 'development' into branch/threejs

Conflicts:
	support/client/lib/vwf.js
	support/client/lib/vwf/model/glge.js
Don't presume the application ID in the driver `initialize`.

These are follow-on changes from commit:184f459 now needed in
branch/threejs after the merge from development.

  - Apply the `this.scene.sceneRootID` => `this.kernel.application()`
	changes from model/glge to model/threejs too.

  - Make `this.scene.sceneRootID` => `this.kernel.application()` changes
	to the new functions `isPrototype` in model/glge and
	`ifPrototypeGetId` in model/threejs.
Remove empty `value:` fields from components.

Rather than not setting a value, these were actually setting a value of
`null`.