Don't allow starting recording in states that will cause a crash or other problem.
Common: Fix a potential infinite loop in ReplaceAll

Prior to this change, it was possible to cause an infinite loop by making the string to be replaced and the replacing string the same thing.

e.g.

std::string some_str = "test";
ReplaceAll(some_str, "test", "test");

This also changes the replacing in a way that doesn't require starting from the beginning of the string on each replacement iteration.
Moved the loop check back to a post-loop condition in DSP HLE AX ucode.  This brings DSP HLE in line with DSP LLE and fixes issue 7627.  This effectively reverts ef501137be4a019a18719e1ce802ec42ca68ab03 which is not needed as the loop check is now corrected.
Re-added the acc_end_reached logic for AXWii.
Fix render to main crashing in fullscreen.
When hiding the menubar (for going fullscreen with render to main),
keep a functionally-duplicate menubar around for servicing menubar
actions.
Fix some formatting (new lines on collapsed single-line conditionals,
new lines for opening braces).
Clear movie variables that might have been set from a previous run.
Split some parts of UpdateBoundingBox into multiple lines. Also,
fix issues causing failure on Lint.
AudioCommon: Make WaveFileWriter inherit NonCopyable
Common: Remove HAVE_CXX11_SYNTAX define from Common.h

All the compilers we support have C++11 support now, so this isn't needed.
Migrate PNGs from DolphinWX to the Data/Sys/Resources directory.

 * Aren't used by anything (yet) as DolphinWX compiles XPM versions into the build
 * Moved the .desktop file as well, adjusted INSTALL rule accordingly
Merge pull request #1000 from lioncash/preproc

Common: Remove HAVE_CXX11_SYNTAX define from Common.h
Merge pull request #999 from lioncash/copy-assign

AudioCommon: Make WaveFileWriter inherit NonCopyable
Merge pull request #998 from waddlesplash/wx-fixup

Migrate PNGs from DolphinWX to the Data/Resources directory.
Merge branch 'master' of https://github.com/dolphin-emu/dolphin into VR-Hydra
DolphinWX: Fix Wii save importing

Calls to reserve don't resize the array to accomodate the given data size.
These vectors should be initialized with the size directly.
Reserve a register for ppcState.

The register is RBP, previously in the GPR allocation order.  The next
commit will investigate whether there are too few GPRs (now or before),
but for now there is no replacement.

Previously, it was accessed RIP relatively; using RBP, anything in the
first 0x100 bytes of ppcState (including all the GPRs) can be accessed
with three fewer bytes.  Code to access ppcState is generated constantly
(mostly by register save/load), so in principle, this should improve
instruction cache footprint significantly.  It seems that this makes a
significant performance difference in practice.

The vast majority of this commit is mechanically replacing
M(&PowerPC::ppcState.x) with a new macro PPCSTATE(x).

Version 2: gets most of the cases which were using the register access
macros.
Fix a bug with update loads in memcheck mode.

In two cases, my old code was using a temporary register but not saving
it properly; it basically worked by accident (an otherwise useless
FlushLock was causing CallerSavedRegistersInUse to think it was in use
by the GPR cache, even though it was actually a temporary).

I'm going to modify this in the next commit to use RDX, but I didn't
want to leave a broken revision in the middle.
Factor code from ABI_CallFunctionRR and GetWriteTrampoline into a helper, and fix a special case.

The special case is where the registers are actually to be swapped (i.e.
func(ABI_PARAM2, ABI_PARAM1); this was previously impossible but would
be ugly not to handle anyway.
Rationalize temporary register usage.

Rather than using a variety of registers including RSI, ABI_PARAM1
(either RCX or RDI), RCX, and RDX, the rule is:

- RDI and RSI are never used.  This allows them to be allocated on Unix,
bringing parity with Windows.

- RDX is a permanent temporary register along with RAX (and is thus not
FlushLocked).  It's used frequently enough that allocating it would
probably be a bad idea, as it would constantly get flushed.

- RCX is allocatable, but is flushed in two situations:
    - Non-immediate shifts (rlwnm), because x86 requires RCX to be used.
    - Paired single loads and stores, because they require three
    temporary registers: the helper functions take two integer
    arguments, and another register is used as an index to get the
    function address.
These should be relatively rare.

While we're at it, in stores, use the registers directly where possible
rather than always using temporaries (by making SafeWriteRegToReg
clobber less).  The address doesn't need to be clobbered in the usual
case, and on CPUs with MOVBE, neither does the value.

Oh, and get rid of a useless MEMCHECK.

This commit does not actually add new registers to the allocation order;
it is intended to test for any performance or correctness issues
separately.