Cleaned up boot sequence

- Now the app boots with a loading screen
- Now the app has a boot manager that performs the necessary tasks to let the app run smoothly from that point on
- the BootManager uses the custom JobSequencer, where it puts boot steps and lets the JobSequencer run them one by one.
- Created the VisibilityManager that manages the visibility of our application
- Added an animation to the grid items that pop up, but only for API >= 11 (it checks for the API)
- Created API checks in Utils class so we don't get crashes when using new API functions on older APIs, however, almost no calls to newer APIs than our app's target build are already checking for that just yet. We'd have to create an issue for it.

Closes #105