Fix Freelook on Linux and add speed reset.

Should fix issue 7692.
Also fixes issue 7147.

I have no idea if these changes will affect Mac or Windows users, so please test.
Update freelook description.
JIT: micro-optimize cmpXX a bit more for lower latency/code size
JIT: use BLR optimization to avoid anding LR with 0xFFFFFFFC

Should save roughly one instruction per blr.
JIT: reorder blr comparisons

This should allow macro-op fusion in blr instructions.
JIT: optimize mulhwu
JIT: merge fcmpx and cror

Almost all uses of boolean condition-register ops in real code seem to be
the combination fcmpx + cror (e.g. for <= or >=). This merges the two.
JIT: optimize crclr special case of crxor
JIT: flush unused registers during branch merges

Also correct some flags in interpreter tables.
Reorganize faulting stuff.  Differentiate between arch- and OS-specific defines.

- Get rid of ArmMemTools.cpp and rename x64MemTools.cpp to MemTools.cpp.
  ArmMemTools was almost identical to the POSIX part of x64MemTools, and
  the two differences, (a) lack of sigaltstack, which I added to the
  latter recently, and (b) use of r10 to determine the fault address
  instead of info->si_addr (meaning it only works for specifically
  formatted JIT code), I don't think are necessary.  (Plus Android, see
  below.)

- Rename Core/PowerPC/JitCommon/JitBackpatch.h to Core/MachineContext.h.
  It doesn't contain anything JIT-specific anymore, and e.g. locking
  will want to use faulting support regardless of whether any JIT is in
  use.

- Get rid of different definitions of SContext for different
  architectures under __linux__, since this is POSIX.  The exception is
  of course Android being shitty; I moved the workaround definition from
  ArmMemTools.cpp to here.

- Get rid of #ifdefs around EMM::InstallExceptionHandler and just
  provide an empty implementation for unsupported systems (i.e.
  _M_GENERIC really).  Added const bool g_exception_handlers_supported
  for future use; currently exception handlers are only used by the JIT,
  whose use implies non-M_GENERIC, but locking will change that.

- Remove an unnecessary typedef.
TASInputDlg: Use Bind over Connect for event handling
Profiling: measure time on POSIX systems using clock_gettime
Merge pull request #1475 from lioncash/bind

TASInputDlg: Use Bind over Connect for event handling
Add nunchuk support to tas input.
Merge pull request #1380 from RachelBryk/ext-tas-input

Add nunchuck support to tas input.
Merge pull request #1350 from FioraAeterna/integeropts

Various smallish JIT optimizations
MemArena: Fix a memory leak caused by pointer confusion

This code was ported from out_ptr, which was a double-pointer, and
wanted to double-check that the proper arena was actually allocated.

When I ported it to store the pointer directly in the view regardless
of whether out_ptr was non-NULL, I got confused here and instead
caused the code to only free the arena if the first byte was non-zero.
MemArena: Fix the calculation of position in SHM

The code to calculate the offsets into the SHM file wasn't properly
respecting the skip flags, causing it to calculate offsets beyond
the end of the SHM file.
Fix some warnings.
MemArena: Merge the initialization code with the size calculation code

To make mistakes like in the previous commit less prevalent in the future.