front: Allow user to reset per-game settings to their defaults.
front: Pass RomHeader to GamePrefs constructor.

The header contains immutable information that we can use when naming
game-specific data directories.
front: Name game-specific data directory using immutable header info.

Header name is not always as user friendly as GoodName, but the header
name is immutable for a given MD5, which is probably more important in
the long run for not borking user data.

Using the header also eliminates the dependency on the RomDetails class,
which is sometimes costly to use.
front: Use a separate mupen64plus.cfg file for each game.

Power users have always been able to manually edit the core config file
to access advanced settings not exposed via the UI.  Before, this config
file was shared across all games, which meant that the manual edits had
to be reapplied every time the power user switched games.  This commit
changes that by assigning a separate config file to each game.  Thus the
power user need only edit the config file once.
Merge branch 'reorganize-game-directories'
front: Remove md5 field from RomDetail (avoid all ambiguity).

Remove all chance that we are ever using an alias MD5.  We are always
passing around the true, calculated MD5 for the ROM.
front: Only store essential information in GalleryItem, no db lookup.

Speeds up loading and minimizes coupling.
(wip) rename game directory