Fix udisks2.Device.is_external recognition

Due to a bug in the implementation any Device showed as external when
using the online backend (via Sniffer). This results in trying to
(un-) mount or lock system partitions when using the '-a' option.

The specific reason is that Device.is_luks_cleartext evaluates as
bool(Device.luks_cleartext_slave) and would therefore always return True
since Block.CryptoBackingDevice=='/' for non-LUKS devices.

This can be fixed by any of the following changes:

- check the validity of object paths in Sniffer.get() and return None in
  case of failure [DONE]
- check for Block.HintSystem==False instead of `bool(Block.HintSystem)`
  in is_external in order to return False for all devices that do not
  have the Block interface [DONE]
- check for CryptoBackingDevice!='/' in is_luks_cleartext [not done]
- add __nonzero__ (__bool__) methods to OnlineInterfaceService to check
  if a valid DBus object is represented [TODO]

Also incrementing the version since this is rather serious issue.