Refactor loader code and add preliminary NCCH support

This branch refactors the ELF/loader code (code responsible for loading bootable files), as well as adds support for loading the NCCH format. NCCH is used for loading the CXI (CTR Executable image) and CCI (CTR Cart image) files used by retail software. For now, there is simply one function that loads the NCCH ExeFS .code section (executable code). Eventually, I'd like to have this abstracted in a nicer way, however I don't expect this to happen until file system emulation has gotten quite a bit more mature.
If this isn't anything but simply (u32*)base, I suggest exposing this internally via a private u32* GetBase32() instead. Otherwise you'll end up having to update base32 whenever base gets changed all the time.