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.