Added support for Retina display in MacOS X

A few changes to support a different size of "windowing pixel" and "OpenGL pixels". Uses a static std::function in the Platform class that is modified by the MacOS case.