armemu: Join QADD16 and QSUB16 together.

The only difference between these ops is one adds and one subtracts. Everything is literally the same.
armemu: Fix lower-bound signed saturation clamping for QADD16/QSUB16.
armemu: Join SMUAD, SMUSD, and SMLAD
armemu: Fix SMUAD, SMUSD, and SMLAD

Wrong values were being multiplied together.
armemu: Fix FSUBS bug where NaN shouldn't be negated
armemu: Fix FTOUI NaN sign.
Merge pull request #290 from lioncash/vsub

armemu: Backport some VFP fixes from 3dmoo.
Merge pull request #289 from lioncash/smops

Join SMUAD, SMUSD, and SMLAD ops. Also fix them as well.
armemu: Fix SADD16

The lo and hi parts of the result were being constructed as a result of hi and lo halfword intermixing from the rm and rn regs. However the lo part of the result should be constructed only from the lo halfwords of rm and rn, and the hi part of the result should only be constructed from the hi halfwords of rm and rn.
Merge pull request #287 from lioncash/qaddsub16

armemu: Join QADD16/QSUB16 and fix saturation clamping.
Merge pull request #293 from lioncash/sops

armemu: Fix SADD16
Filesystem/Archives: Implemented the SaveData archive

The savedata for each game is stored in /savedata/<ProgramID> for NCCH files. ELF files and 3DSX files use the folder 0 because they have no ID information
ResultCodes: Add a comment for Description::NotFormatted

It is private to the FS service
SaveData: Addressed some issues
SaveData: Removed some duplicated docstrings
SaveData: Fixed build
FileSys: Got rid of the code duplication in File and Directory

Files that deal with the host machine's file system now live in DiskFile, similarly for directories and DiskDirectory and archives with DiskArchive.
SaveData: Addressed some comments
FileSys: Moved DiskFile and DiskDirectory to disk_archive
SaveData: Partially implemented FormatSaveData