[new compiler] Fix invalid memory reads when JS closures outlive QML types

If QQmlCompiledData gets destroyed while somebody still has refcount on the
QV4::CompiledData::CompilationUnit, then unit's _data_ would be freed already
by ~QQmlCompiledData. Given that compilationUnit->data is pointing to the same
malloc'ed address as QQmlCompiledData::qmlUnit, we can just let the
CompilationUnit always own the data.

Fixes tst_qquickloader and makes it possible to run the qquickcomponent tests.

Change-Id: Ie3f3e5335139236d7c2524a327665bda0a9cc847
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
[new compiler] Add support for deferred properties

Change-Id: I592518444ef353cfcf153df0e6afa2fbac613560
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
[new compiler] Fix auto component creation with composite types

A binding like this

    property Component foo: SomeComposite {}

should not do an implicit component insertion if SomeComposite is actually
a component. The property assignment is compatible and can proceed normally.
Fixes tst_qquickcanvasitem, but added a separate unit test for this case.

Change-Id: I7221eebd38dba3f2a82b59341739b9b67211e352
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Make tst_qqmlincubator::chainedAsynchronousIfNested more robust

Don't rely on the exact number of instructions executed in the VME to
determine the loading state of the incubator. With the simpler object
creator that's not based on instructions we might end up creating objects
in less steps, so make the test work with both.

Change-Id: If8a3628cac97251036c9b2cd8f26e75eca1d39ed
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
[new compiler] Fix designer integration

If the QML puppet disables onComplete callbacks, we must obey that also
in the new code path.

Change-Id: Ic9b74c6a5ee04dc5b8e4f545a8e6cc0fa8dd28f1
Reviewed-by: Lars Knoll <lars.knoll@digia.com>