bus: keep kernel bus fd around during entire life-time of bus

We need this since we might need to invoke the release ioctl for
messages. Since we don't want to add any locking for that we simply keep
a reference to the bus and then rely that the fd stays valid all the
time.
bus: actually unmap kdbus pool after use
bus: return ECHILD as soon as people try to reuse a bus connection across a fork()
bus: add minimal locking around the memfd cache

We want to allow clients to process an sd_bus_message on a different
thread than it was received on. Since unreffing a bus message might
readd some of its memfds to the memfd cache add some minimal locking
around the cache.
bus: add APIs for negotiating what is attached to messages