When cancelling a sale or a quote, leave a reason

  Add tests

Change-Id: Ib6ed4ddb613ae5038099714f90a58f108d98f0f9
(cherry picked from commit 67cbb163f9c84b0d5d18c07a20f1cbd8d1e6f8e8)