SceneGraph: hide internal transformation implementation from public API.

Previously it was possible to access internal transformation
implementation from Transformation and thus also from Object, e.g.:

    typedef SceneGraph::Object<SceneGraph::MatrixTransformation2D> Object2D;

    Object2D o;
    o.fromMatrix(...); // What does this here and why it returns matrix?!

Now everything is hidden in Implementation namespace and all
traces of previous code are removed from documentation. It might now be
slightly harder for users to implement their own transformation
implementations, but it wasn't easy before either. The widely used ones
are already implemented, so it shouldn't be too much of a problem.
Similarly for potential backward compatibility issues, I assume nobody
needed to implement their own transformation yet.
Make Doxygen spit less warnings.

Oh where are the times when Doxygen didn't spit ANY warning.
SceneGraph: fire assertions only where it really matters.

Should speed things up a bit in debug builds, as the asserts are now not
fired in functions which would not trigger them anyway, such as
normalizeRotation(), resetTransformation() etc.
SceneGraph: doc++
SceneGraph: clean up the code a bit.

No need to copy `return static_cast<...>;` all over the place.
SceneGraph: clean up includes.

Why did we need to include <vector> for scene graph transformations?!
SceneGraph: test assert in DualQuaternionTransformation::fromMatrix().
SceneGraph: new AbstractTranslation transformation interface.

Supports also integer coordinates.
SceneGraph: new TranslationTransformation class.

Translation-only transformation, supports also integer coordinates.