add support for non blocking forms

I need this feature for stretchable entities - basically this adds a version of Window.form() that allows you to call it as a non-blocking mode, so that it can fire back notifications to you.

New scripting APIs are:
* Window.nonBlockingForm(title, array); -- this will show the form, but will return immediately to JS.
* Window.reloadNonBlockingForm(array); -- this will allow you to reload some elements of the form while it's still being displayed
* bool Window.getNonBlockingFormResult(array); -- this will return the results of the form and true or false for OK/Cance

New signals are:
* Window.inlineButtonClicked(name); -- an "inline button" was clicked on the form
* Window.nonBlockingFormClosed(); -- the form was close, you can call getNonBlockingFormResult() to get results

New types for items in the form are:
- { type: "header", label: "Position:" } -- this will add a section header to the edit dialog
- { type: "inlineButton", label: "", buttonLabel: "Reset to Natural Dimensions", name: "resetDimensions" } - this will add an inline push button that will fire events.