Warn the user if anything wrong happens on SaleItem.sell

* Make the is_available error better descriptive so the user will know what to
  do to fix the problem.
* If a StockError is raised while decreasing stock, raise it as a SellError
  so the user can be informed of the problem.
* On fiscal_printer, except any SellError exception (those above) and warn the
  user if any happen.

Change-Id: I2f225563f5b0420d0e92d8ba612267859883b6a5
Merge "Warn the user if anything wrong happens on SaleItem.sell" into 1.7