Second version of AudioEngine:
1) ServiceConnection moved to MainActivity as the binding and unbinding of the AudioEngine is only needed there
2) Initiation of AudioEngine moved from MainActivity to AudioEngine constructor; had to create class App for that (needed the application context to load resources)
3) Reworked the logic with earlier GameActivity:onStart/onStop to MainActivity:onCreate/onDestroy (1) and added GameActivity:onPause/onResume to pause the music when locking screen/changing focus to different application
4) Added Cache to the project which is a singleton class used for storing and accessing information globally throughout all classes, Audio is now accessible through Cache.getInstance().Audio (my earlier statement about storing the same information in the GameActivity class was just stupid, they could be merged though...)