Correct Repeater syntax.

The syntax used for repeaters up to now was unnecessarily complex and not even
supported in Qt. Now still only one possible syntax is allowed, but this time
the easiest and a one that is supported in real QML.
Add count property to Repeater.
Add support for ListModel and ListElement types.

I added an optional options argument to QMLItem and QMLBaseObject constructors
that is an object with options passed as properties by name. That allows
passing additional options for finetuning by name,
like "{manualChildHandling: true}" for prevent QMLBaseObject from handling the
children in order to do it manually (needed for Repeater). This is the only
currently supported option. Probably more will come.
Let QMLEngine() be a real constructor.

Use "this" instead of creating a variable "eng" containing the engine.
This is how javascript objects are intended to be created.
The advantages are:
- instance of QMLEngine works
- easier to debug, e.g. for memory-profiling
- probably helps browsers with optimization
I moreover resorted the function a bit
Fix ReferenceError in QMLImage.$onSourceChanged.

It tried to use "eng" instead of "engine".
Use real constructors for creating qml objects.

Like for the engine the advantages are:
- "instance of" works (so no need to use $$type anymore (which is not intended
   to be used in code at all, but is just for debugging purposes))
- easier to debug, e.g. for memory-profiling
- probably helps browsers with optimization
Add a createFunction function to create functions

Instead of using properties that run the function from the getter.
So we now call functions like onClicked, like functions onClicked();
instead of tilt(onClicked);.
As a nice side-effect now in qml the syntax onClicked: {
    doSomething();
    andMore();
}
(with brackets) is possible.
Reorganize default properties.

This reorganization brings the following changes:
- default properties work now more similar to default properties in Qt
- children can now be accessed via the new children property
- children of components with a default property set now have the correct parent
- the options parameter for qmlbaseobject is obsolete again (at least for now)
  and was thus removed
Fix Repeater to use "self" in the model callbacks.
Add Repeater test qml-file.

repeater.qml is at the same time a test for components
(tests the combination of repeater and components)
Get the idScope just when evaluating the binding.

That makes sure that the scope is the right one. Prior the scope was fetched
when the property got created (not when it was set) and then saved in a
variable. Thus in case of components the scope was always the component internal
scope causing reference errors.
Fix topGetter and leftGetter to use correct parent

Use item.parent instead of the closure variable parent. That ensures that the
right parent will be used. (In case of components the parent will be
overwritten.)
Use instanceof instead of $$type to identify model
Define anchors as all other properties explicitly.

This makes it possible to set anchors for component instances. Prior only
anchor properties were created, that had a value set in the meta code. In case
of components that only happened if the anchor value was set inside the
component definition which is not the normal case.
Add counter to the repeater test file.

To test the counter-property.