modules: add android_window vout

 - used for direct and non direct rendering (replace opaque.c)

 - use nativewindowpriv: more control than the public api, since you can set
   orientation, crop, cancel a buffer without displaying it and allocate more
   than one buffers.

 - fallback to nativewindow if nativewindowpriv fails (with only one buffer in
   the pool then).

 - Only one way to display subtitles: use a seperate android surface.

 - Fix subtiles display in case or source aspect != 1.
android/surface: remove single_instance
android/surface: fix leaks if Open fails
android/surface: use calloc
android/surface: don't use native_window
android/surface: use native_surface from jni

(see android commit "jni: add jni_AndroidJavaSurfaceToNativeSurface")
android/surface: configure surface synchronously

Set surface color and size synchronously using jni calls.
omx-dr: remove jni_SetAndroidSurfaceSize call

It's now handled in android_window
mediacodec: remove unused code/variables
mediacodec: remove jni_SetAndroidSurfaceSizeEnv call

It's now handled in android_window
mediacodec: fix width/height in case crop is invalid