patch to separate context and surface life cycles

 - allows faster wake-up after app suspend, because context and thus
   textures doesn't need to be recreated/reloaded
 - adds 2 new events, ContextLost and ContextSet
   ContextLost is fired when we detect that the context was lost
   ContextSet is fired when we set new context and is good place
     to load your textures. When the context survives the suspend
     it is not called on wake-up and existing context is reused
     instead
 - original patch by Dean Ellis, extended and finished by Radek Doulik
added AutoSetContextOnRenderFrame property

 - it defines whether we make game view's GL context
   current before calling OnRenderFrame
 - default value is true
 - in some cases it is useful to set it to false
   in user application and setting the current context
   from app. for example in activity containing only
   fullscreen Android game view, which has UI hardware
   acceleration disabled. in such case it is possible to
   avoid making current context on every OnRenderFrame call