Big commit (sorry!)

Took a long meandering path to get here, with several dead ends and a
lot of temporary logging/debugging.  So I think squashing it all is the
lesser of two evils in this case.

Changelog:
 - Filename/package reorganization
   - TouchscreenView => GameOverlay
   - SDLSurface      => GameSurface
   - InputMapPreference moved to .persistent sub-package
   - PathPreference moved to .persistent sub-package
   - game_activity.xml, preferences.xml, strings.xml updated as needed
 - Refactored the interaction between core, surface, and activity
   - GameSurface holds the thread running the core (as always) since
     the core is tied to the surface lifecycle, not activity lifecycle
   - GameSurface notifies listeners after core is fully initialized and
     before the core is about to shut down.
   - GameLifecycleHandler listens to these notifications
     - On core startup: sets a flag, loads auto-save file, and resumes
     - On core shutdown: clears flag
   - GameLifecycleHandler tests flag before all calls to change emu
     state (only calls onPause, onResume if core is running), which
     eliminates some crashes and stalls.
   - The flag is key to resolving the surface, core, and activity life-
     cycles, which are not nested or in lock-step.
 - GameActivity*
   - Added more lifecycle methods (many just for debug logging)
 - Simplified activity start/finish semantics, follows more traditional
   Android activity lifecycle
   - Removed the CLEAR_TOP and SINGLE_TOP flags, unnecessary for us
   - MainActivity is finished because we never want to return to it
   - MenuActivity is not finished, because we want to return to it
   - GameActivity is finished, because it's the simplest way to manage
     its lifecycle and synchronization with user prefs changes
   - Presently, there is a bug related to core shutdown that causes a
     force close when returning to MenuActivity.  This is a bug related
     to the core, not Activity lifecycle semantics.  Verified through
     extensive debugging (not committed).
 - Organized the implementation of GameMenuHandler for more parallelism
 - Simplified manifest
   - Removed android:configChanges annotations (officially discouraged,
     not sure why they're needed (but please enlighten me))
   - Shorthand notation for android:name annotations
 - Layout resources
   - Changed all fill_parent to match_parent (they're equivalent but
     fill_parent is deprecated as of API 8)
   - Tweaked status text padding in MainActivity
   - Removed full-screen from MainActivity (transition to MenuActivity
     seemed jumpy, obtrusive as the status bar popped back into view)
 - Global cleanups
   - Removed Paths.tmpFile (made local to CoreInterface.getRomPath)
   - Removed INHIBIT_SUSPEND setting. Suspend is always inhibited now.
     If there's a reason to change back, we can do it later.
   - Generalized, renamed some stuff in Paths.java

TODO:
 - Fix fatal error after NativeMethods.quit is called, which causes
   force close
 - Remove auto-save/resume preference (must not be disabled for proper
   pause/resume lifecycle management)
 - Add reset button to ingame menu, to replace the functionality lost
   by the previous TODO (this may be more intuitive anyhow)
 - Remove layer of indirection between touchscreen controller, visible
   touch map, and game overlay (make overlay listen to controller
   directly, rather than going through visible touchmap)
 - Consolidate and cleanup CoreInterface, NativeMethods, and lifecycle
   handler (have become disorganized since refactoring)