qmljs: track origin of ObjectValues

allows unique identification of types

Change-Id: Id4e6a9c1fa23409b1e2d5eb32708a0bacd04a5da
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
qmldesigner: fix reparenting to Layout

Using strings for everything creates issues, the whole thing should
be cleaned up in master.
cleverCompare is asymmetric, one side has the code model, but the other
is a string.
To keep it like that wherever we detect that the string is becoming
too strange (normally for copied prototypes) we fall back to the
cpp name if available whenever the import does not match the origin.
Then cleverCompare can successfully compare the strings.

Task-number:QTCREATORBUG-11905

Change-Id: I857f81b57d8ddd43263ce0e3bb085600ff6e8a43
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
qmldesigner: avoid variable shadowing in nodemetainfo

Change-Id: Ie61915613417dbeb792e6911527eb486d5120a99
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Todo: Better naming of enum value.

It's not the last, it's the count.

Change-Id: Ib739c34b952af022f83fa0c2d547154d70641456
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>