front: Exposed some of the Key/Axis providers' functionality.

Will be used in of the upcoming commits.
front: Added InputMapActivity, soon to supersede InputMapPreference.

The InputMapPreference UI is too limiting for the many functions needed
during input mapping. This is because it uses a neutered version of an
AlertDialog provided by DialogPreference. We need more control, namely
a simple way to add extra menus and callbacks, without the limitations
of the AlertDialog UI and without the show/hide semantics forced by
DialogPreference.

So we give the input mapping process its own activity.  This commit
provides most of the implementation for that activity, but stops short
of actually replacing the old InputMapPreferences in the menu.  This
commit provides a possible branch point for testing the new activity
while safely maintaining all of the existing UI and functionality.
cleanup: Renamed some widget IDs to follow a naming convention.

No functional changes.
front: Replaced InputMapPreference with InputMapActivity.

Controller enabled/disabled is persisted as its own boolean now, rather
than being serialized with the input map. This is much more logical and
easier to maintain in the long run.

Fewer buttons/axes are mapped by default now, to minimize conflicts out
of the box.  They are
 - analog stick <-> AXIS_X and AXIS_Y
 - d-pad <-> KEY_DPAD_* (no AXIS_HAT_*, conflicts w/ Nyko PlayPad)
 - start, R, L buttons to their virtually universal keycodes

A TogglePreference was implemented.  Basically a fancier version of a
checkbox preference.  Besides the slider/toggle widget, the main
difference is that clicking on the list item in the preference menu
does not do anything (checkbox preference it toggles the check state).
This is so that you can handle the click in your own custom way, e.g.
to launch an activity like InputMapActivity.  To change widget state,
you need to click on the widget itself. This imitates the "master on/
off switch" pattern used in the Android settings:
 http://developer.android.com/design/patterns/settings.html