Remove STATUS_[UNAVAILABLE|BLOCKED] from Sellable

Sellable would change automatically from AVAILABLE/UNAVAILABLE depending on the
stock status (if we have stock or not). That can lead to lots of problems
(specially with synchronized bases), so remove it. If one needs to check the
stock availability, he should check the Storable.

STATUS_BLOCKED was removed together since it was never implemented. We should
implement the block feature as a flag in the future.

Some other changes were done because of that:
* POS: It was broken when selecting a sellable from the search (instead of
  getting from the barcode directly) where it wasn't checking the stock. Now
  everytime a product without stock enough is selected, a message will be
  displayed informing the user.
* Product: The 'Sellable.can_close' check now asks the product, that will see
  if it still has stock available (it's exactly what it did before by checking
  if it was unavailable)
* Sellable: Some sellable queries were not used anymore, so they were removed.
* SellableEditor: The unavailable_label was removed since it doesn't make sense
  anymore. It's not possible to change a service status by hand anymore so the
  user should use the 'Close' button that will accomplish the same.

Change-Id: I33d38d93f597c226d0d36fde32a8e942f48f789f
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
Correct get_available_sellables_query

get_available_sellables_query was wrong because it was removing the sellable
with id equals to the delivery service (it appears ok on tests and etc because
on most cases, they are the same since the delivery service is the first
service/sellable to be created and normally no one changes the parameter to
another sellable).

Also, kill get_available_sellables_for_quote_query that was doing the same as
get_available_sellables_query (but the right way) and use the second one on
it's only callsite and add a test for it.

Change-Id: Ib0957a6e1e194e43bdf9d6eecc082d360154f7d5
Merge changes Ib0957a6e,I2f225563,I33d38d93

* changes:
  Correct get_available_sellables_query
  Warn the user if anything wrong happens on SaleItem.sell
  Remove STATUS_[UNAVAILABLE|BLOCKED] from Sellable