Partial credit and Instructor Break constraint

When attempting to write the preference constraint conflict, I met with an issue created by using time preferences to create breaks in an instructor's day.  Shade had mentioned that he wanted this in a recent sprint review, but it became apparent that using two instructor preference constraints would cause issues.  ("Shade_before_10:00" and "Shade_after_14:00" could create impossible schedules, and if you were to add "CSC 450_before_12:00", the constraint becomes tricky to satisfy.)

To circumvent this, Cameron and I decided a new constraint would make more sense and be much easier to implement.  This new constraint allows an instructor to specify two time slots, a start and an end, between which they do not want to teach any courses.  

This pull request also adds partial credit for non-mandatory constraints, so instead of adding a full fitness score or no extra fitness, it adds a percentage of the constraint's weight based on how much of the schedule passed the constraint.