added a constraint

ensures a project that is already assigned cannot be assigned unless
unassigned first
added test map to ensure that we try all possibilities

it adds (only) addable projects (i.e. not allocated yet) into a map of
Student:Project