Add several commands and improve stability.

FIX: sending a modified object did not modify the object for the
receiver.

List of commands:
ADD OPTIONAL (for n choose k courses)
REMOVE (to remove a course)
SETK (set k for n choose k courses)
GENERATE (now handles n choose k situations)
DISPLAY (completed. Now displays a navigateable schedules list.)
LIST (shows list of courses and optional courses)
IGNOREEXTRAS [INT] (sets ignoreExtras to true or false)
EDIT (lets you edit the selected state of optional activities and
sections)
SEMESTER (lets you change your active semester, at the cost of losing
all settings.)
HELP/? (lists a list of commands.)