Add perist method to History and have Runner call this rather than needing to interact directly with the database interface; refactor PGWrapper specs