Use AbstractCamera<dimensions, T>, Drawable<dimensions, T> and
DrawableGroup<dimensions, T> like before and add two kinds of aliases
instead of only one: AbstractBasicCamera2D<T>/AbstractBasicCamera3D<T>,
BasicDrawable2D<T>/BasicDrawable3D<T> and
BasicDrawableGroup2D<T>/BasicDrawableGroup3D<T> for abstract type and
AbstractCamera2D/AbstractCamera3D, Drawable2D/Drawable3D and
DrawableGroup2D/DrawableGroup3D for Float.
Also fixed some find&replace errors in documentation and include guards.
Partially reverts commit a0d60bbaa7.
Use AbstractObject<dimensions, T> like before and add two kinds of
aliases instead of only one:
AbstractBasicObject2D<T>/AbstractBasicObject3D<T> for abstract type and
AbstractObject2D/AbstractObject2D for Float.
Makes it easier to use AbstractObject in templates of fixed dimensions
(e.g. Bullet integration, where it can now be written as
`AbstractBasicObject2D<btScalar>` instead of potentially confusing
`AbstractBasicObject<2, btScalar>`).
Partially reverts commit cfd405c32c.
This allows to use those nice aliases even on GCC <= 4.6 without
resorting to verbose full name. Double and other types can be then
typedef'd as e.g. Camera3Dd or Camera3Di.