bluez: split out errors

We'll use them from more places than nm nm-bt-device.c in the future.
bluez: track adapter address in NMBluezDevice

We'll need it for bluez5 DUN support.

[lkundrak@v3.sk: Turn the addresses to strings from guint8[ETH_ALEN], as that
is what rest of NetworkManager uses for MAC addresses and what Bluez utility
functions expect as well.]
bluez: implement DUN connect/disconnect for Bluez5

Since Bluez5 likes removing stuff just do what Bluez4 did, and what
the "dund utility in Bluez5 does: hit up the kernel directly, since
the kernel APIs can't ever change.

[lkundrak@v3.sk: one single whitespace fix]
bluez: re-add DUN support for Bluez5
asdfasdfasdf
asdfasdfasdf
cleanups
bt addresses are strings now
keep fd open, so that MM won't keep reconnecting

NB: Despite it's not wise anyway, there's a bug in the kernel that deferred
rfcomm tty teardown races with the new open. The newly open tty gets a HUP
which confuses NM and the deallocation fails on a refcount check, making the
old rfcomm stuck in the kernel, needing a reboot for another reopen to succeed.
callback