Platform: more intuitive argc/argv Arguments structure.
Trade: properly implement move constructor and assignment in MeshData.

Default implementation of move constructor won't set pointer to indices
to `nullptr` in `other` object, thus implementing it explicitly. Not
sure what will happen in move assignment, implementing it explicitly
too.
Primitives: reworked remaining classes to have the same API as the rest.

Now every primitive can be created using `solid()` or `wireframe()`
function returning directly Trade::MeshData.
Fixed one-value AbstractShaderProgram::setUniform().

The original workaround for enums didn't work (all enums were treated as
UnsignedInt even though they had Int as underlying type), moreover the
solution didn't scale for other possible types with implicit
conversions. Now explicitly listing all scalar types and templated
vectors/matrices, it should work for most cases.