reworked communication error handling

Throw a specialized exception whenever our connection to dbus servers
gets corrupted.  This should simplify error handling for the caller
because now he only has to catch exn:fail:dbus?.

Signed-off-by: Jan Dvořák <mordae@anilinux.org>