Listener api changes

A couple of changes to the listener API.

I've opted for returning a value with a `.remove()` method rather than providing a `removeListener` method, since we need access to the signal handler function. I believe this won't work if you have two listeners for the same property name though - the EventEmitter stuff will be handled properly, but the dbus match will be removed.