Basically refactor everything

- Created root package data and put into it what belongs there
- Renamed interface implementations to make them more Java-y
- Deleted FileUtility
- Oh, and made FilesystemPersistence actually work (output is slightly wrong.
    This may be due to input parsing)