VideoSoftware: Added Real XFB support.

Massivly increases the accuracy of VideoSoftware, if it's going to be slow, it
might as well be accurate.

 * Fixes flickering issues in games which double render to get Hardware AA, like the Peach's Castle tech demo.
 * Rouge Squadren 2's Cantina Intro doesn't flicker anymore, but it duplicates the top half of the screen onto the bottom.
 * Any games which need RealXFB support should now work in Video Software
Appease the all powerful buildbot.

Visual Studio's struct alignment #pragma is ugly.
Now Compiles on Visual Studio.

Fixed a PEBCAK issue where a developer was commiting things to git
without checking they actually fixed the issues causing buildbot to
fail.
Fixed nogui build.

ConfigManager.h was being indriectly included into SWmain.cpp, but only
when a gui was being built. So we just include it directly.
Fixed a few issues bought up in code review.
[Android] Refactor InputConfigFragment a little bit in preparation for the implementation of the new input overlay.

This moves all of the dialog handling into the actual MotionAlertDialog class itself. This is something I should have done a long time ago.
Also moved the Gamecube input binding preferences into their own PreferenceScreen.
[Android] Documentation typo cleanups from the last commit.

Also cleaned up the Javadoc for the constructor of MotionAlertDialog.
[Android] Implement a very basic version of the input overlay configuration screen.

Still a bit of a mess, but this will get cleaned up during finalizations.
[Android] Slight cleanup for previous commit. Mostly UI adjustments.

Makes the buttons appear uniformly on the overlay config activity.
[Android] The emulation overlay now sets the button positions based upon the locations chosen in the input overlay configuration settings. Documented the hell out of how the initialization of the Drawables works inside InputOverlay.java.

Also made the use of InputOverlayItem.java obsolete. So this is now removed.
[Android] Maintain the chosen button layout when returning to the input overlay configuration menu.

- Also make the overlay configuration screen fullscreen for the app.

- Also force the overlay activity to be landscape, since this is the only orientation the EmulationActivity supports.
[Android] Prevent automatic alignments within the overlay configuration settings. Let the user do this on their own.
[Android] Fix alignment issues with the overlay config settings.
[Android] Add the capability to dynamically enable and disable the input overlay during emulation.
[Android] Fix the super-mature string that was a placeholder for the title for the overlay configuration setting.

Also fix a NullPointerException possibility. Fixed it by giving the PreferenceScreen a title.
[Android] Improve an if statement check in InputConfigFragment.java. Also clarify it.
[Android] Add the copyright header to some Java source files that were lacking them.
[Android] Change how the onTouchEvent native method works. Just pass in the correct Button ID and Action and it'll be pressed or not. Not actually rigged up to the Java code yet. Doesn't support anything with an Axis yet so no C stick, main stick, L and R triggers
[Android] Overlay now works during emulation.
[Android] General cleanup.

We no longer need the buttons in Assets, considering they are now resources (ie. drawables).

Also remove (now) junk code from VideoSettingsFragment.java. We handle the input overlay within the InputSettingsFragment.

Also add a TODO detailing what needs to be refactored when axis support is finally added.