Make Android integration more robust for API >= 11

Recent targetSdkLevel bump exposed robustness issues in the Android
port which were hidden by pre-honeycomb workarounds in
android.app.ActivityThread. For honeycomb and up when launching activity
with lockscreen on or screen off the system for some reason first starts
the activity once, puts it back to stopped state and then resumes again.
Original Android port assumed that stop event signaled that the test
execution should always stop and process should kill itself. This might
have been necessary workaround on some older Android versions where
onDestroy was never called even if app called finish().

This commit improves Android integration in multiple ways:

 * Android port can continue test execution even across stop-start
boundary in the Activity life-cycle.

 * eglu::GLRenderContext can recover from window loss by recreating
the window if NativeWindow::postIterate() throws WindowDestroyedError.

 * eglu::GLRenderContext refreshes window surface size in postIterate()
call. Note that most test cases might not like if surface is resized
during execution though.

 * Temporary window loss (recreation) no longer leads to test run abort,
but rather Android NativeWindow correctly signals that event allowing
eglu::GLRenderContext to recover.

Change-Id: Iaa240f16a2ae6cea7fb894c5772d1e7959a1cfac
11 files changed