Invalidate removed devices

Allow to show unmount notifications for invalid devices. These are
clearly not mounted anymore and there is no way to see their state in
udisks1.
Refactor udisks1 API

UDisks is now a base class for UDisks the two service wrappers:
- Sniffer serves as online device inspector. It communicates with the
  UDisks DBus service at property access time.
- Daemon uses cached device states and receives signals whenever their
  state changes.

UDisks implements the following methods:
- __iter__: iterate over all valid devices
- __getitem__: get device object by object path
- find: get device object by device path or mount path

Furthermore service wrappers must implement:
- paths: get object paths of all valid devices
- get: get device object by object path
- update: update (synchronize) and return object state by object path
Refactor Mounter API and cleanup implementation

The following features have been added to the Mounter interface via
keyword parameters:
- automatic mounting of LUKS cleartext partitions after unlocking with
  mount or add_device routines (recursive=True)
- automatic locking of LUKS slave partitions after unmounting the
  cleartext partition in unmount or remove_device routines (lock=True)
Automount LUKS devices when they have been unlocked
Merge branch 'cleanup-api' into udisks2

Conflicts:
	udiskie/cli.py
	udiskie/mount.py
	udiskie/udisks1.py
Adapt udisks2 implementation to recent API refactoring
Add new program options to man page