API change to be more idiomatic Go

Hi there,

Thanks a lot for this package, it works great!
However a few things bother me with the API, especially that IDs must be handled by the user. While this is OK for the "low-level" API (the `SendMsg` and `ReplaceMsg` functions), it's not what I expect when using a `Notification` struct and its methods. More specifically, when I use `n.ReplaceMsg`, I expect it to replace the notification previously displayed with `n` without having to explicitly set its ID and save its new ID.
This PR implements just this: an update of the `Notification` API, without touching to the API that uses the "implicit notification".

Even if it's too much change, the first commit makes sense IMO: it switches to github.com/godbus/dbus instead of github.com/guelfey/go.dbus, which seems unmaintained.