Updated: __checkavailability__ and __guess__ now raise errors

Instead of returning special values, __checkavailability__ and __guess__
now raise errors that can be catch.

Also, a generic way to check the availability of the decompressor that
inherit from ExternalPipe has been made by looking for the executable.
Updated: compressions attribute of Archive moved to class attribute

- It's easier to have the compressions attribute in the class directly
  instead of the __init__ arguments
- Get rid of the hack in test_20_guesser.py
- Make Un7z looks similar to ExternalPipe to be able to use the
  __checkavailability__
(Useless commit to preserve the history)
Updated: test of decompressors more generic