Move session handling code to a separate module
Nicer UI for recording session totals

Makes use of the configured list of payment methods rather than just
looking at the methods used in the session.