SceneGraph: use protected destructor rather than pure virtual one.

The Transformation classes are always instantiated by inheritance, thus
we don't need any virtual deletion capabilities.
Shapes: WHY there is that.
Removed default template argument from DimensionTraits.

It's not obvious what should be the default and thus it is confusing.
Sometimes Int, sometimes Float, no clear winner.
Trade: pass ImageReference2D to image converter.

Also not through pointer, but throught const&, allows implicit
conversion from Image2D and Trade::ImageData2D, which is good.

Bumped plugin interface version a bit, as this is not so drastic change
in behavior.
Trade: return references, not pointers from MeshData.

The access methods assert that the user is querying only available data.
Also updated Primitives implementation to create MeshData when
everything is done, not creating empty MeshData and then shooting the
data through interface intended for end users.
Platform: pass application configuration via reference, not pointer.

Removes the need for explicit new/delete calls.
Platform: make Configuration constructors explicit.

As it now isn't passed by pointer, this allows doing things like this:

    /* Lost all hope in this hardware */
    if(!awesomeFeatureSupported)
        createContext({});
Platform: documentation updates.

It looks much better now without all that explicit/implicit deletion.
Trade: hide unused parameter.
Platform: forgot this.

Also the message in 883600e373854eef0a5c0ee8f2d1f0c52a0c3c8c should say
"Make Configuration constructors _implicit_". Damn.
Shaders: forgot this.

Follow up to 2eb4e3c8ba98630b54e98090a08d8ba69253c351. Damn.