input-android: Initial check-in.

Just input-sdl renamed to input-android. As a Mupen core plugins noob,
it's easier for me to start with a working example and tear down,
rather than building the plugin from the ground up.

input-android: Removed code for loading config from Mupen API.

We are managing all input configuration using Android's scaffolding, so
we do not need to interact with Mupen's configuration file API.

input-android: Removed more stuff related to unused Mupen config API.

input-android: Tell core that all controllers are plugged.

This is just a temporary solution until the actual plugged settings can
be obtained from the front-end.  (Will require an additional JNI func.)

input-android: Removed SDL dependency completely.

This is a bare-minimum removal. A ton of unused code remains, which can
be cleaned up later.

For now, I had to break vibration and in-game pak switching, but for
the most part the plugin is completely functional as far as I can tell.
Anyhow, this is a good base to streamline from.

input-android: Removed unreachable code.

input-android: Removed unreachable __linux__ code.

input-android: Replace printf with generalized debugger calls.

input-android: Formatted code, with no other changes.

input-android: Removed #ifdef _DEBUG directives (redundant?).

input-android: Removed unused #includes.

input-android: Remove more unused code.

input-android: Consolidate some code.

input-android: More streamlining.

input-android: Code rearranged with few other changes.

input-android: Fixed debug logging and cleaned up variable names.

input-android: Remove raw data processing, and more streamlining.

input-android: Eliminated header files, removed unused function.

input-android: Deleted irrelevant doc files.

input-android: Streamlining pretty much complete.

TODO:
 - Create JNI interface to communicate
   - which controllers are plugged
   - what pak they're using
 - Verify proper operation of paks
 - Verify proper swapping of paks in-game
 - Implement rumble feature

input-android: Remove mercurial ignore file.

I don't foresee this ever being pushed upstream since it's so tightly
integrated with Mupen64Plus-AE.

input-android: Final simplifications, fixed debug logging.

TODO:
 - Create JNI interface to communicate:
   - which controllers are plugged
   - what pak they're using
 - Verify proper operation of paks
 - Verify proper swapping of paks in-game
 - Implement rumble feature

input-android: Reduce verbosity.

input-android: Tweaked variable names and formatting.

input-android: Re-added code stubs for rumble.
input-android: Rumble working for player 1 via phone vibrator.

Tested on Diddy Kong racing. The pattern might need a little tuning in
the Java code, but otherwise working fine. The native code is basically
finished. The only remaining native items are to re-wire the debugger
to the extern implementation, but this should wait until the front-end
plugin has been slimmed down.

Remaining items on the Java side:
 - Create UI for specifying pak type. The button mappings do not
   currently work and should probably be removed. I favor using the in-
   game menu to switch paks, rather than a mapped button, as this would
   be much easier to implement.
 - Get rumble working on peripheral devices (gamepads). This will just
   require some Java code in the *Controller classes.  Presently, only
   the phone vibrator is used, and only for Player 1 rumbles.
input-android: Implemented native side of in-game pak switching.
input-android: Cleanup with no functional changes.

Formatted with Eclipse built-in C++ format "BSD/Allman" using spaces
rather than tabs.  Seems closest to most of the other native code.
input-android: Remove leftover logging during rumble, and cleanup.
build: Cleaned up Android makefiles for legibility.

I triple checked this and verified the build, but would appreciate a
second or third set of eyes to ensure I didn't change anything.

Wanted to make it easier to read the build flags and dependencies.
There are some linker warnings with the latest NDK related to the gnu
stl and thought this might help track it down.
build: Remove dependency on cpufeatures for most modules.

Only module that currently needs this is gles2n64.
build: Remove unneeded NO_ASM and ANDROID defines from some modules.
build: Remove other unneeded linkages to standard libraries.

-ldl Dynamic Linker library
    Although the header is included in osal_dynamiclib_unix.c, we are
    apparently not using any of its features in our build.

-llog Android Logging library
    Not needed by audio-sdl or rsp-hle.

-lz ZLib Compression library
    Not needed by png because png is static. Rather, the clients of png
    must link to ZLib (gles2rice).
JNI: Fixed stale reference errors in input-android
input-android: Fix some warnings/errors when building with NDK r9.

NDK r9 is a bit more strict when it comes to printf formatting (or lack
thereof).
build: Remove unnecessary linkages to shared libraries.

The core does not need to be linked with the ae-bridge because it does
not invoke any ae-bridge methods.

None of the plugins needed to be linked with the core because they do
not invoke core methods; they merely handle callbacks.

The front-end does not need to be linked with the core because it dyn-
amically loads the core library at run-time.
jni: Reorganize Java classes, rename a few functions, add javadoc.

This splits the monolithic CoreInterface and CoreInterfaceNative Java
classes into several smaller classes that correspond to the C files
they interact with. It also groups these classes into a sub-package to
minimize clutter in the root package.
input-android: Bugfix, discard stale pointer on reset.

This pointer will refer to a block of memory that no longer exists if
the core was reloaded.  Was causing segfaults on some devices due to
variations in multi-thread behavior.