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.
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.
Profiling: measure time on POSIX systems using clock_gettime
Make EXI use CoreTiming events like everything else instead of having its own slow special check.

Microphone is probably wrong/mistimed because it doesn't take into
account cycles late, but that's not a new issue here.
Allow hard resets to be recorded in movies.
JIT: genericize immediate address handling, support in float stores too
Menu capitalization consistency
JIT: fix valid_block marking

This caused invalidations that only affected the last portion of a JIT block
to fail, breaking Wii64's block linking. It might affect a bunch of other
games too; I haven't tested.
Merge pull request #1487 from FioraAeterna/fixinvalidate

JIT: fix valid_block marking
Work around LLVM header peculiarity

Bug report: http://llvm.org/bugs/show_bug.cgi?id=21472
Merge pull request #1471 from RachelBryk/reset-record

Allow hard resets to be recorded in movies.
Merge pull request #1483 from comex/on-demand-exi-interrupts

Make EXI use CoreTiming events like everything else instead of having its own special check.
JIT: revert cmpXX optimization

It seems like this wasn't correct in 100% of cases.
Merge pull request #1489 from FioraAeterna/revertopt

JIT: revert cmpXX optimization
Core: Fix potentially uninitialized variable warnings
Merge pull request #1427 from lioncash/uninit

Core: Fix potentially uninitialized variable warnings
Merge pull request #1408 from randomstuff/perf

Profiling: measure time on non-Windows/POSIX using clock_gettime
Common: Fix -Wmaybe-uninitialized warning.
JIT: fix typo in optimization patch

Whoops... made us flush everything on every branch.