Fix error reporting timing

Errors for example in signal declarations are usually reported in the loader
thread, during property cache construction. This patch separates out the
property cache population into QQmlPropertyCacheCreator, runs it from the
loader thread and reduces the QQmlObjectCreator to merely set the properties/bindings/
functions on the object.

This also enables location tracking for signal declarations and their error reporting.

Change-Id: Ief1ffbb3113f8279a50d1a12dab8dbe096702a60
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
[new compiler] Improve error reporting

Re-enable COMPILE_EXCEPTION calls that were commented out due to missing
location information (that this patch also adds).

Change-Id: I0d584f474cc7e879350c8aae2869a9603ba415aa
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
[new compiler] Implement name sanity checking for properties, signals and functions

Change-Id: I58c442dc56075c449ebd2534ab6b9f90e7da8eae
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Implement plain simple locking in the executable memory allocator

Memory allocations may now also happen to come from a separate thread, the QML
loader thread where we also compile the JavaScript code and (likely) use the
JIT. Commonly that will be the only place where the allocator will be used. The
main thread uses the allocator only when an exception is thrown (to look up
platform unwind info) or when the garbage collector runs and decides to delete
objects that also hold the last reference to executable memory.

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