[do not merge - needs review] Android GL

Android GL is almost ready for merging.

Can I get a few sets of good eyes to look at the changes, since there is a lot in here.
@jfirebaugh I was getting GL error logs on Android due to trying to activate and already activated context.

Besides activating/deactivation context on every single frame is expensive.

We only need to activate context once in lifetime of rendering thread.

If code calls render non-async it should be the callers responsibility to ensure a GL context is active.