FileSys: Updates backend code to use FileSys::Path and adds proper support for binary filenames.

Updates our backend file system code to use the new Path class defined in #183 for file/directory paths. This allows the same code to be agnostic of different file path types supported by 3DS. Also adds proper support for binary filenames. Fixes #187.
You can verify this using any program that uses RomFS, by changing the return from the archive handle to zero, then changing it to some different handle, and seeing how the program reacts. You'll see that it will freak out in the latter two scenarios, but will continue to run correctly in the current scenario.