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.
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.