Updated FindGLEW.cmake, fixed Windows support.

On Win it needs both *.dll and *.lib to be successfully linked,
currently the variables must be set manually.
Require HarfBuzz in FindMagnum.cmake only if it was compiled with it.
Updated documentation on building and library finding.
Platform: expose MAGNUM_USE_HARFBUZZ in magnum-info utility.
Primitives: using strongly-typed angles.
Added typedefs for double-precision vector and matrix types.
Removed linkage of AbstractShaderProgram::Attribute::Location.

It now doesn't appear in symbol lists, avoiding nasty linker issues.
Consistent naming of attribute types in AbstractShaderProgram.
Ability to send less than all attribute components to the shader.

Remaining unspecified components are set to 0, 0, 1, according to spec.
Also cleaned up and simplified the internals, added debug output
operators for attribute component count and types and tested the whole
thing.
Math: added strongly-typed asin(), acos() and atan().
Primitives: fixed Icosphere subdivision.
Trade: got rid of Point2D/3D in MeshData in favor of Vector2/Vector3.

Positions were originally done using Point2D/3D to simplify their
transformation using matrices and to some extent simplify their usage in
shaders. But now the disadvantages exceeded the advantages:
 * They take 50% more for 2D positions and 33% more for 3D positions, as
   last coordinate is always equal to 1, on the other hand when last
   coordinate is errorneously not equal to 1 they have crazy behavior.
 * Normalizing them or transforming them with anything else than with
   matrices is PITA, as we need to strip the last component, do the
   transformation, and then add the component back.
 * All transformation handling classes (Complex, DualComplex,
   Quaternion, DualQuaternion, Matrix3, Matrix4) now have convenience
   functions for transforming points specified directly as
   Vector2/Vector3 (and also for transforming vectors).
 * When someone wants to use homogeneous coordinates with crazy last
   component values, they can do so with plain Vector3 for 2D and
   Vector4 for 3D and it will be less confusing than using Point2D/3D
   which no important detail hidden.
Shaders: got rid of Point2D/3D in positions in favor of Vector2/Vector3.

Originally it was for more convenient usage of homogeneous coordinates
in shaders themselves, but it is actually not needed:
 * When passing three-component vector (3D position) to `vec4`, the last
   coordinate is implicitly set to `1`, thus there is no need to pass it
   explicitly in each attribute.
 * On the other hand, when passing three-component vector (2D position
   in homogeneous coordinates) to `vec3` with Z explicitly set to `1`,
   it still needs some swizzle magic to extend it to `vec4` gl_Position.
   Passing it as two-component vector results in nearly the same magic
   while saving precious memory.
Adapted to recent meshdata/shader changes.
Physics: removed unneeded includes.
MeshTools: got rid of Point2D/3D in favor of Vector2/Vector3.
Removed DimensionTraits::PointType.

Not needed anymore.
Math: removed Point2D/Point3D altogether.
Added TODOs.
Math: renamed Quaternion::rotateVector*() to transformVector*().

Now it is consistent with Matrix and can be easily used in templates.