[new compiler] Fix id mapping in implicitly defined components

When scanning for component roots of explicitly defined components, make sure
to skip synthetized ones. Now samegame runs :)

Change-Id: If64171aefc1105a130a1a50e855af87977d2f3af
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
[new compiler] Fix customer parser use with nested objects

Types with a custom parser attached don't need to continue with validation of
properties in sub-objects.

Change-Id: Ib25f8e037cf651dfb30dd4016f89980612dff4f4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
[new compiler] Fix refcounting leaks with property caches

The TypeReference is not copy-safe, as it holds refcounted property cache
pointers. For the new compiler code path, don't copy them but keep pointers to
TypeReference objects around.  Also make sure to ref the root property cache
correctly and avoid the unnecessary addref for the property cache when creating
new vme meta objects (initial refcount is 1).

Change-Id: I0c4b952c8300c2167d926d9c35b8579fd505d596
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
[new compiler] Fix type versioning

Imported types with a meta object that contains revisioned attributes, need
their property cache created for exactly the imported version. So this is done
ahead of type and populated in the resolved types, similar to the old code path
in qqmlcompiler.cpp.

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