DebugTools: minor code cleanup.
DebugTools: don't set resource key for unused index buffer for 2D box.
DebugTools: simplified and optimized internal shape rendering.

All rendering code computed the transformation/projection matrix the
same way, resulting in redundant calculations. Also the
`transformationMatrix` parameter of internal draw() function was never
used.
DebugTools: missing break in switch.

I don't know why this didn't crash or fail miserably before.
Doc++
Another #include cleanup.

This will break some stuff.
Primitives: added crosshair primitive.
DebugTools: added point size to ShapeRendererOptions.
DebugTools: support for Point shape in ShapeRenderer.
DebugTools: oops, swapped order of parameters.
DebugTools: assertions for non-empty resource key when it is needed.

Shape renderer can specify empty resource key if index buffer won't be
used.
Print also resource key when attempting to overwrite final resource.
Physics: convenience overload for ObjectShape::setShape().

Will allow for more convenient usage of e.g. ShapeGroup operators:

    Physics::ObjectShape3D* shape;
    shape->setShape(Physics::Sphere3D({}, 0.75f) ||
        Physics::AxisAlignedBox3D({}, {3.0f, 1.5f, 2.0f}));
Doc++