bigscene-cpp: Added Material for each entity

Change-Id: I5eb658a7464afaac08e25ebbe75626ab614c7dec
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Optimize: Remove temporary QHash for parameters in RenderView.

The QHashes used here are usually very small. In my tests, the
list often only contains 4 items for example. Incurring an
allocation for every node in the graph is very costly. Using a
sorted, stack-allocated QVarLengthArray instead improves the
performance greatly.

Linearly stepping over the small list is also quicker than
hashing strings repeatedly. This can be seen by profiling
the bigscene example before and after this patch with
disabled animations and custom materials for each cylinder as
added in 91a0ee64c850d2efad4b1743afc15a19b18af25e.

Change-Id: Ida370fbb3c9b1c6a0673a112eb2107970b40ea01
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Optimize: Remove heap allocations for *Names() in RenderShader.

This is called frequently and would otherwise allocate a list
on every call. Instead, we now allocate the return value on
initialization, which happens less often.

Change-Id: I38eccf1c05a376a035c951ca61ce170f2657889e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Optimize: Use QHash iterators instead of allocating a temporary list.

Change-Id: I4bec5c45c137b2279fe60ce56e41b28c156491e5
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Optimize: Remove temporary allocations in QMeshData::attributeNames.

This is called frequently and was previously triggering many temporary
data allocations. By using a separated QStringList and QVector, we
can keep the behavior of the QHash and can remove the temporaries.

Change-Id: Idd7db916341037e98b78730d4f599990041ec706
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Doc: Review documentation QT3D

Task-number: QTBUG-42819
Change-Id: I6e79994e837e139f04c7d5ec1b0904d488de5b57
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>