This allows for a more component-based codebase, like those in web development.
Also added barebone minimap and refactored the file loading.
Should have commited them in a separate commit, but I'm just used to overusing git add -p.
The MPL is a file-based license, rather than a codebase-based license.
Each files need to be marked as MPL.
If we don't do mark them, they may cause confusion.
Before, all the traits are implemented for EchidnaApplication.
This is added to better support using the app with many windows open.
EchidnaApplication may be obsolete now, but I'm not removing it for now.