Draft: android: refactor buildsystem for java wrapper and add texture synchronization

Disclamer: this MR is far from being ready, but it's currently working well. Many things are still a bit ugly or experimental.

This merge request implements texture synchronization between the android SurfaceTexture and mediacodec.

Because the android entrypoints are interface only implementable in java, it adds a way to compile and bundle java into a .jar to Android application and bindings (libvlcsharp, libvlcjni) so as to implement the necessary JNI <-> Java wrappers. In a sense, it enables using Java as an IDL to expose C for the java runtime.

A LOT are not completely ready for this MR, but since I already sent part of it on the ML and the buildsystem parts will need some discussion, I think it was important to publish.

It doesn't involve the other buildsystem changes discussed for Android yet.

Merge request reports