libgame: add pointer to g_MwFlags
libgame: add USB-related hooks

Adds two locations (_rwstor2_msg_55a_call and _rwstor2_msg_551_call) we
can patch to avoid getting killed on USB plug-in events, as well as two
functions that are used by the USB thread to read and write the SD card.
libgame: USB debugging support

Allows to send debug output over USB to be retrieved by the host by
accessing a magic block on the SD card.
demos: added USB debugging demo
tools: added USB debug console
toolchain: install proper start file

This makes sure that _libgame_init() is called.
libgame: fixed USB hook search to work on a wider variety of firmwares

Some firmwares use a wrapper for PostMessageExt() through a function
pointer that they test for validity first...
Also, some firmwares have slightly more or less verbose debug output;
this implementation works for all known firmwares except SK8607 (which is
not known to be used in any real-world devices).
libgame: test_fw: add USB hook tests
libgame: implement redirection of stdout/stderr to USB debug
libgame: usbdbg: change magic block from 16 to 3072

LBA 16 is often read on plug by the host OS, causing debug messages to
get lost.
libgame: usbdbg: add usbdbg_write()
libgame: usbdbg: add usbdbg_wait_for_plug()
libgame: make libgame_buttonmap_t::name const

Avoids warnings when using C++.
libgame: usbdbg: drain D-cache after patching USB code

It is not sufficient to simply invalidate the I-cache when hooking
our debugging routines, we also have to make sure that the changes are
actually written through to RAM.