WIP: Reworking projections.
Fix use of function name for variable in GLSL.

In OpenGL 3, the proper function for texture mapping is texture(),
which consequently should not be used as a variable name.
Fix compile with Clang.

Can't use a narrowing conversion inside {}.
Fix crazy scrolling on Mac OSX.

Mac sends more high-resolution scroll events, so instead of just zooming
on every event, we need to accumulate angles of scroll to throttle.
Fix size of openGL drawing on Mac OSX on retina.

On retina, the Qt Window makes a distinction between logical pixels
and actual pixels; the former is used for sizes, while the latter is
what OpenGL expects for glViewport(). Need to scale the size() by
devicePixelRatio() to get the proper size.
Wrap long line.
Finish re-working projections.

This changes the world coordinate system and works to use more generic
geometric calculations rather than a bunch of hand-coded scales and
offsets.