[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.
This doesn't feel like the right way do deal with an setAppliedClasses/load style race. Is there an issue on this?