Android register player

This is a rework of https://github.com/xbmc/xbmc/pull/2381 after the jni rewrite. It allows users to set XBMC as the default handler for the types in https://github.com/theuni/xbmc/commit/cf733f1b4072160c18529f2f9bb793d40120224e . Thanks to @koying for the original work.

the "jni" commits are internal lib work independent of xbmc. The final changes have been made to make it completely application-independent, so it can now be moved out of the xbmc code-base and into a new project. These can be squashed down to a single commit if desired.

the "droid" commits are the changes to xbmc to take advantage of the new features in the lib.