Remove tutor column from user model.

This removes the existing boolean tutor column, as it is now
unnecessary and clashes with the Tutor model relation.
User creates client instance on save.

*All* users have the client role.  Tutor and admin roles default to
nil.
User#tutor? helper.

Predicate to check if the user is a tutor, saves having to use
`user.tutor.nil?` everywhere.
Do not build extra Client in client spec.
Add subject model.

Subjects taught by tutors.
Add Appointment subjects.

Appointments have subjects, which require that the tutor actually
teaches the subject.
Prevent duplicate course numbers.

Only one course can have a given course number.
Add database index to Subject.course_number.

Enforce uniqueness on the database level, and speed up lookups by
course_number.
Add start time and length to appointment.

Appointments have a start time, and a length in minutes.  This allows us
to check for overlap between appointments.
Remove length column from appointments table.

Database must store start and end time to allow for more efficient
overlap checks.  Therefore, make `length` a virtual attribute.
Appointment overlap validation.

Validate that a given tutor only has one appointment at a time.
Add inverse relation between subject and tutor.

Will make it easier to filter tutors by the subjects they teach -- a
necessary function for the main schedule interface.
Remove unique index on Appointment start time.

While the start time is unique *per tutor*, the table stores all
appointments.  Therefore, the unique index was preventing two different
tutors having appointments at the same time.