front: Created preference for new input plugin (input-android)

input-android will be a very thin input plugin for communications
between the Android Java front-end and the Mupen64Plus native core.
It will be a simple de-evolution of input-sdl, stripping out all code
not required for the Android front-end, removing dependencies on SDL
and other libraries.
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.
front: Remove input-sdl plugin and associated preference resources.
front: Removed input-sdl config file syncing (no longer needed).
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.
front: Implemented Java infrastructure for multiplayer rumble.

TODO: Find the device vibrators and register them in Java.
front: Rumble now working for gamepads & multiplayer.

TODO:
 - Create UI for changing pak in game (and persisting to prefs).
input-android: Remove leftover logging during rumble, and cleanup.
front: Created UI for changing paks from the in-game menu.
bugfix: Flattened in-game pak menu hierarchy for compat with API < 11.

The double-nested submenu in the previous commit created problems with
the gingerbread device I tested on.
front: Pak switches are no longer mappable (use in-game menu instead).

In the Mupen64Plus core, button indices 14 and 15 are denoted
"reserved". In the input-sdl plugin, those button indices are used to
switch the controller paks, and the switching logic occurs inside the
native code. I prefer the simplicity of using a menu rather than making
the switches mappable.
front: Simplified some vibration command syntax.
Merge branch 'master' into input-android
res: Remove unused string.
front: Changed name from "Expansion Pak" to "Memory Pak".

Forgot that the real "Expansion Pak" plugged into the head unit.

Technically they were called "Controller Paks" not "Memory Paks" but I
suppose this is clear enough since that's what's used throughout the
internal Mupen docs.

If you have any better ideas for wording, please suggest or revise.
doc: Updated changelog.
bugfix: Checkmarks shown for each player's controller pak.

Before, only one radio button was marked across all the players. I just
needed to add IDs to the groups so that Android can separate the radio
groups.
 bugfix: Use NUM_N64_PSEUDOBUTTONS for array size.

Changed BUTTON_STRING_MAP.size() to NUM_N64_PSEUDOBUTTONS to avoid
future index out of bounds problems.