Branch/remove initialize camera

The changes on this branch allow one to manipulate the camera directly in a scene's initialize function, without having to make a future call.  Note: It does not change any of the applications that current make future calls to manipulate the camera.  They will be updated on a different branch.

More generally, the updates ensure that any asynchronous calls from a prototype's initialize function complete before a node's own initialize function is called (thus we know that the camera will be fully ready).  It also ensures that the kernel will wait for a driver with a blocking initializingNode function before considering it fully initialized.

@davideaster and @jessmartin, would you mind reviewing this?