Insert delay between prototype initialize calls to allow nodes to be created

refs #2417
Move setTimeout from inside javascript driver to kernel/model.js

This is an intermediate step toward getting the kernel to recognize when an asynchronous call has been made in execute, and it needs to wait until that call completes.
refs #2417
Have javascript.js initializingNode warn kernel that blocking calls might occur

This function now requests that the queue be paused until all initialize functions in the prototype chain have returned.  The kernel now waits for notification from javascript.js before calling initializingNode on the remaining drivers.
Ensure that parent is not set on node until initialization is entirely complete

Also, remove an errant copied-and-pasted comment from vwf.js
refs #2417
In javascript.js initializingNode, rename callback to notifyCallerReadyToContinue

Clearer, don't you think?
refs #2417
Reinstitute protection against user calling ready callback twice

When the driver_ready = true line was removed to avoid errors calling the async iterator too many times, it opened the possibility that the driver could call the ready callback more than once, triggering too many async iterations.  This was fixed with the nextIterAlreadyCalled guard variable.
refs #2417
Update system documentation for execute kernel call to add callback_async param

fixes #2417
`kernel.execute` async adjustments.

  - Use the `vwf` kernel reference instead of a new `that.

  - Move the view notification to right after model execution instead of
	waiting for any model-initiated asyncs to complete. The action has
	executed after the models have run. The `kernel.execute` caller has
	the option to wait for the asyncs if it interested, but the view
	notifications shouldn't always wait.

  - Move the logger exit function out of the async completion callback.
	Logger calls need to wrap function calls and not action execution.
	Otherwise the group opens/closes won't match.
Pass the `kernel.execute` result in its callback.

And update the documentation to clarify.
Rename the `initializingNode` callback parameter to include `callback`.

For clarity since callback functions are so critical to flow control.
Also, switch to `self` for the local `this` to match other uses in the
driver.
Use the name `prototypeDepth` consistently for that concept.
Rename to `callInitializers` and `initializerScript` for clarity.
Move per-prototype `initialize` from `model/javascript` to the kernel.

In order for the javascript driver to create an async break between
calls to a node's prototype `initialize` functions, it needs to call
back into `kernel.execute` and iterate using the `execute` callback. But
kernel reentry is during replication. The driver can't make the extra
hop through the kernel to execute its script. It needs to execute it
directly.

This commit makes the kernel responsible for applying the prototypes'
initializers to the node. Using the new `initializingNodeFromPrototype`
handler, the kernel directs drivers to run the relevant prototype
initializers on the node. The kernel provides an async break between
initializations when needed.

Drivers only need to apply one initializer at a time. They no longer
need to search through the prototype chain and don't need to be
concerned about waiting for async operations from a prototype's
initializer to complete before calling a derived node's initializer.

An added benefit is that multiple drivers can perform partial
initialization correctly (such as if two scripting systems are active).
Previously, one driver would execute initialization for the entire
prototype chain without allowing the next driver to interleave its
initialization for the same nodes.

References #2417.
Fix comment. References #2417.
Merge remote-tracking branch 'remotes/origin/development' into branch/remove-initializeCamera
Fix mouse navigation

Refs #2417
Fix peer review feedback

Refs #2417
Merge pull request #95 from virtual-world-framework/branch/remove-initializeCamera

Branch/remove initialize camera

Fixes #2417