bus: add userdata API for bus name tracker objects
core: no need to pass bus object to selinux access check calls anymore
hashmap: add hashmap_remove2() to remove item from hashtable and return both value and key
sd-event: reorder header slightly
sd-bus: introduce sd_bus_slot objects encapsulating callbacks or vtables attached to a bus connection

This makes callback behaviour more like sd-event or sd-resolve, and
creates proper object for unregistering callbacks.

Taking the refernce to the slot is optional. If not taken life time of
the slot will be bound to the underlying bus object (or in the case of
an async call until the reply has been recieved).