Added the currentUser's details to the model when viewing an event.  I need this so I can auto fill slots with the user's crsid when relevant
Added a field freeformEditable to Events which indicates if people are allowed to book slots for others or take slots from others
Refactored and moved isSlotUpdateable over to the Slot class.  This method now returns true if the currentUser is allowed to modify this slot and the toMap method puts the results into the model for soy

The rules for deciding if a slot is editable are (in order of priority):

1) If you own the event you can do whatever you like - this is a change to the previous semantics, now event owners can change bookings after the event or slot has expired
2) If the event is not in freeform mode then you cannot edit a slot which is booked by someone else
3) If the event has expired then you can't edit the slot
4) If the slot has expired then you can't edit the slot
Made use of the isUpdateable information per slot. If the event is not in freeform mode then the only thing you can do is sign yourself up - I've implemented this with a token input with only one possible result (and patched token input to show this result without you having to type)