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.
this is confusing since it will place this header in front of our checkout notes when we check the equipment in. Maybe we should make sure that every time we save reservation notes we add an appropriate header (either procedure or timestamp) and forget about adding the header to 'old notes'.