implement proxy method contracts

DBus is not forgiving - feeding it invalid parameters results into
disconnection.  Making use of contracts helps to catch such errors
early.

Signed-off-by: Jan Dvořák <mordae@anilinux.org>
collection of standard D-Bus interfaces

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