Optimize lookup code

Simplify code slightly and allow the compiler to
generate more efficient code.

Change-Id: I2fbb060dc8969cf17813157d9c15e088a61e5de4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Optimize string additions

QV4::String can now either hold a pointer to a QStringData,
or a pair of pointers to a left and right string. This
reduces the overhead of an addition to allocating a new
GC'ed object.

To avoid huge chains of linked strings, we use a depth counter,
and flatten the string once the depth reaches 16.

Change-Id: If7192b8a9f67f0e36a9a8ea34a156c5222f127f4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
tests: replace nokia with qtproject in tst_qqmlmoduleplugin

Change-Id: I674da7f77dde380fb0772d5077da84de875b6ce8
Reviewed-by: Alan Alpert <aalpert@blackberry.com>