Airspace: GetAirspace() returns reference
Util/{Const,Writable}Buffer: add template specialisation for <void>

Allows adding assertions to the non-void implementation.
OpenGL/Buffer: remove unused id constructor
OpenGL/FallbackBuffer: wrapper for GLBuffer with fallback

Allows using the same code for OpenGL implementations with and without
VBO.
TopographyFileRenderer: migrate to GLFallbackArrayBuffer
Math/Point2D: add template argument for result type to *Product()

Prepare for "long" result which may avoid integer overflows.
Math/Point2D: simplify DotProduct(), CrossProduct() template argument

Pass the Point2D type instead of its scalar_type.
Math/Point2D: add function Normal()
Topography/ShapePoint: add forward constructor
Math/Point2D: add function ManhattanDistance()

Replaces the old manhattan_distance() functions.
OpenGL/Triangulate: use CrossProduct(), Normal(), DotProduct()
{Screen,Topography}/Point: rename SquareType to product_type
Math/Point2D: add struct FloatPoint

Base class for ShapePoint.
OpenGL/Triangulate: include cleanup
OpenGL/Shapes: migrate to GLFallbackArrayBuffer

Eliminate the duplicate circle drawing code.
Topography/XShape: normalize ShapePoints

Fixes potential overflow errors.
TopographyFileRenderer: move projection code to Screen/OpenGL/Geo.cpp

To be reused by the airspace renderer.
NearestAirspace: use nullptr instead of NULL
NearestAirspace: include cleanup
AirspaceIntersectSort: include cleanup