Refactor complex methods checkin and checkout (#666)

As per #666. **This pull request is not to be merged yet, as it is lacking test coverage.** Review solicited, since the operations on the methods' internal logic are over.
Ok, the only other way I can see us currently adding reservation notes is through the '/reservations/[ID]/edit` page. If an admin goes into a reservation to add notes, I don't think we need to clarify that those notes came from a time prior to checkin/checkout. That said, I'm wondering if we should refactor the form on the reservation edit page to append the notes instead of allowing for the entire notes field to be deleted; this would prevent anyone from destroying history and it would allow us to timestamp miscellaneous notes. Either way, I think we can get rid of the old notes header.