Partial scheduling

Adds GUI side of partial scheduling and manual concurrency

Bugfixes
1. Fixes bug where, if have 0 valid, scheduler can crash
2. Fixes bug where, in the case of no valid output, a bad schedule is still shown
3. Fixes bug in which more than 5 schedules can be output to CSV
4. Fixes bug in which not all courses were being passed to sections at different times

Tweaks
1. Now generate schedules each generation to avoid stale