Rspec tests

Sorry about the large PR! I had a busy day/night of coding lol. Going through the changes in each commit might be easier than going through the whole diff at once.

The changes:
- created rspec tests for:
	- Assignment#section_due_date (and rewrote method)
	- Assignment#past_due_date?
	- Assignment#latest_due_date
	- Assignment#section_past_due_date? (and modified method)
	- Assignment#what_past_due_date
- refactored Assignment spec:
	- grouped certain tests (i.e. association and validation tests)
	- replaced `.to be` and `.not_to be` with `.to be true` and `.to be false` where expecting a boolean value
	- other small improvements
Redundant `self` detected.