dbus: add support for systemd user instances

I created a new `NewUser()` method in order to not break compatibility with applications using `New()`. I'm not quite sure on the `NewUser()` name (which is kinda confusing) tho.
Rather than using a bool, passing in a `func() (*dbus.Conn, error)` would clarify the calling code:

```
initConnection(dbus.SessionBusPrivate)
initConnection(dbus.SystemBusPrivate)
```