Redo the punch model and add tests

* I changed the punches table so a single record contains data for punch in and out
* changed the punch list display
* changed the 'punch in' and 'punch out' buttons from forms to links
* added some tests for Job class