Garbage collect member data

Move the allocated member data into the garbage collected
area, so that we can avoid using malloc/free for it.

Change-Id: I20625efa67ecd60238568742b74854b0c8cb2e3e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Make the destroy method optional

This allows us to avoid calling a destructor on objects
that don't require one. After the memberData change this
should be most objects.

Also fix a bug where we didn't call the destroy() method on
large objects, potentially leaking memory.

Change-Id: I1708055d568d85b0a3876899d35e8c3eb92dd222
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Regression: Fix id objects in group properties

Setting someGroupProperty.id should not be subject to the usual
restrictions with regards to valid values for id properties.

Task-number: QTBUG-38085
Change-Id: Ie66d9d4d4524ddaf5a6a0b0e260354db44d9995e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>