Event dates

Events can have multiple sessions, each of which has a start date/time and an end date/time.

Add shoulda-matchers for more concise model test win.

RSVPs are still per-event. Finishes tracker story #41809949.