Make bus an optional argument in udiskie.udisks functions

It makes more sense to resolve the dependency where it is actually
required than one step before that.

CAUTION: this changes the parameter order for udisks.get_device!
Migrate to new-style classes

Old-style classes have deficits when it comes to using descriptors.
There is no real advantage to using old-style classes anyway, so let's
stop using them before it bites us in the foot!
Rename common.Properties to common.DBusProperties
Clean up global variables in common.py

Furthermore the get_udisks function will be removed in an upcoming
commit.
Run mainloop from cli.py

This eliminates the need to import gobject into daemon.py.
Wrap udiskie.udisks global functions in a DBusProxy class

Usage of a class enables to preserve state (remember bus connection)
between individual calls. This makes it easier to pass dependencies only
once at creation time of the udiskie object.
Reencapsulate mount functions in class

This helps to keep track of udisks/bus requisites and simplifies the
interface and dependency injection.
Make options parameters to udisks.Device methods optional

By default no options will be passed to the operations.
Perform some minor code cleanup
Inject notification service into Notify plugin

Enables to work with other libraries as notification daemons. Notify2
works now out of the box.
Add runtime dependencies to .travis.yml
Merge branch 'enhance-dependency-injection'
Update TODO