Pass selectedModules to url sharing view instead of requesting it itself
Allow for sem-specific semTimetableFragments
Redirect to current semester if semester not between 1 to 4
Allow route handlers to find out if they were called from the initial route
Rework restoring/sharing timetable from query string

- Shift logic to timetable controller
- Use bluebird promises
- Cleanup logic
- Begin supporting restoring specific semesters
Add and use sem-specific selected modules controllers
Add semester selector to timetable
Display offered semesters in modules listing
Switch to combined sem urls in nusmods.js
Filter and display semesters in selects
Switch NUSMods.getMod to combined sems url
Remove fixed semBaseUrl
Add getTimetable to nusmods.js
Remove UMD and make NUSMods.js a CommonJS module
Shift theme loading to be as early as possible
Add default route navigating to timetable instead of only at history start
Fix clicking logo to go to timetable without refreshing
Convert jQuery thenables to bluebird promises in nusmods.js
Load timetable modules using separate module index and timetable. Fixes #62 due to reworked promise usage
Shift all filters to sidebar