Force to specify a reason when cancelling a work order

Also modify NoteEditor so it can display a message so that editor can be used
as a 'yesno' that indicates a reason.

Change-Id: Ibb5d84ac75b5a1246871e35195aac185662ed0d2
Improve work order status changes

* Remove the idea of 'approved' status. Approved is something more like a
  flag, not a state. Instead, use 'STATUS_WORK_WAITING' that means the
  work is waiting for something to start/continue.
* Add a flag to allow rejection of a work order
* Allow to reaopen a finished work order with a reason
* Replace the 'Has client approval' checkbutton with a button that will
  approve/pause/continue the order. Those actions are just shortcuts
  for the same that can be done on maintenance.
* Some other misc improvements

Change-Id: Ibde659c2c4739a443a0b3b08992b49c128c9e5a7
Merge changes Ibde659c2,Ibb5d84ac

* changes:
  Improve work order status changes
  Force to specify a reason when cancelling a work order