Auto cancellation fee 63163

The fix for the particular issue was to add the last parameter to this line:
res.order_detail.cancel_reservation admin, OrderStatus.cancelled.first, true [, true]

I extracted the cancelation logic into its own class so I could write some tests against it. I also found a problem where order details weren't matching because we were looking for state = "New" OR state = "In Process" (which are OrderStatuses), instead of state = "new" OR state = "inprocess"