Fix various issues with asynchronously loading remote data

- For now, only load app after saved timetables and module codes have been loaded
- Fixes issues with modulify when module loads before moule codes
- Shift loading into TimetableModuleCollection and set selectedLessons before load so that correct timetable will always be saved regardless of network issues
- Add to exam collection only after remote module data has loaded. Bit hackish