Initialize variables to silence garbage return warning from scan-build.
Remove pointless initializations.
Add OSD messages back to status bar.

OSD messages can be disabled, while still leaving them in the status bar. This is incredibly useful for certain users, who may wish to see the messages, but do not wish to have them cover up half of the screen. In particular TASers will generally have OSD messages on the screen 100% of the time, and they cover up useful information, making it critical to turn them off. However the messages are still very useful to them, so it's important to have them somewhere.

This reverts 4a16211bae97a42c24ed43cf4174df03d180ac4a.
Refactor opcode decoding a bit to kill FifoCommandRunnable.

Separated out from my gpu-determinism branch by request.  It's not a big
commit; I just like to write long commit messages.

The main reason to kill it is hopefully a slight performance improvement
from avoiding the double switch (especially in single core mode);
however, this also improves cycle calculation, as described below.

- FifoCommandRunnable is removed; in its stead, Decode returns the
number of cycles (which only matters for "sync" GPU mode), or 0 if there
was not enough data, and is also responsible for unknown opcode alerts.

Decode and DecodeSemiNop are almost identical, so the latter is replaced
with a skipped_frame parameter to Decode.  Doesn't mean we can't improve
skipped_frame mode to do less work; if, at such a point, branching on it
has too much overhead (it certainly won't now), it can always be changed
to a template parameter.

- FifoCommandRunnable used a fixed, large cycle count for display lists,
regardless of the contents.  Presumably the actual hardware's processing
time is mostly the processing time of whatever commands are in the list,
and with this change InterpretDisplayList can just return the list's
cycle count to be added to the total.  (Since the calculation for this
is part of Decode, it didn't seem easy to split this change up.)

To facilitate this, Decode also gains an explicit 'end' parameter in
lieu of FifoCommandRunnable's call to GetVideoBufferEndPtr, which can
point to there or to the end of a display list (or elsewhere in
gpu-determinism, but that's another story).  Also, as a small
optimization, InterpretDisplayList now calls OpcodeDecoder_Run rather
than having its own Decode loop, to allow Decode to be inlined (haven't
checked whether this actually happens though).

skipped_frame mode still does not traverse display lists and uses the
old fake value of 45 cycles.  degasus has suggested that this hack is
not essential for performance and can be removed, but I want to separate
any potential performance impact of that from this commit.
Revert changes to how DInput filters out XInput devices.
This is to remain compatible with XBCD devices.
Fixed bug introduced in PR#803 caused by casting

Also changed casts to C++ style casts to removed some of the ambiguity.
Merge pull request #924 from comex/fifo-command-runnable

Refactor opcode decoding a bit to kill FifoCommandRunnable.
JIT: implement timer support in mtspr

Faster, of course, since we avoid the interpreter, but also means we can
get more a more accurate timer in long blocks by adding the offset from the
start of the block to the retrieved timer. I don't know if this will actually
fix any issues, but it's more correct and a nearly-free improvement.
JIT: merge paired timebase reads where possible

Combined with the previous patch, ~1% faster overall on F-Zero GX.
x64Emitter: add support for shorter EAX forms of instructions

Should save a few bytes of code size here and there.
Merge pull request #840 from FioraAeterna/jittimer

JIT: implement timer support in mtspr
Evict registers from the cache based on LRU.

The old method would always evict the first suitable register, i.e. the
same register every time once the cache got full.  The cache doesn't get
terribly often, but the result is pathological...
Remove PowerPCState::DebugCount.

This value was "helpful" for debugging when the stack got corrupted.
Helpful that if gpr[1](Which is the stack pointer with PPC ABI) is zero then the interpreter would spam huge amounts of annoy text saying that we
managed to get in to a "corrupted" state.
This is incremented every instruction on the interpreter, or every block run on the JIT64....Only if debugging is enabled(JIT64 it is a const
variable)
The message is only outputted when interpreter is used and debugging is enabled.
Merge pull request #950 from Sonicadvance1/remove_DebugCount

Remove PowerPCState::DebugCount.
Merge pull request #941 from FioraAeterna/eaxemit

x64Emitter: add support for shorter EAX forms of instructions
Merge pull request #946 from ChuckRozhon/fix_cast_bug

Fixed bug introduced in PR#803 caused by casting
Merge pull request #893 from rohitnirmal/scan-build-fixes

Scan build fixes
Merge pull request #925 from shuffle2/xbcd-compat

Revert changes to how DInput filters out XInput devices.
Merge pull request #905 from RachelBryk/status-bar-messages

Add OSD messages back to status bar.
Merge pull request #949 from comex/eviction-policy

Evict registers from the cache based on LRU.