bluetooth: Only create DBus proxies when the org.bluez name exists

In some cases, the name "org.bluez" may not exist in the bus, we should wait
for it to exist before we try to create a proxy for the tracked objects.

This is in preparation for allowing the name to disappear while the extension
is running, which may happen when we call SetPowered(off).
bluetooth: Simplify PropertyChanged handling

In most cases, we don't receive a ProperyChanged signal when it
was caused by using the BlueZ D-Bus API.
bluetooth: Add support for powering the adapter up/down

Tizen has a limitation that when the adapter is powered down, bluetoothd is
killed and the adapter is removed from the USB bus. Tizen also has a specific
API for disabling and enabling the adapter.

This allows for us to remove the workaround that we had, that we called enable
on the adapter on every initialization.
bluetooth: Add a real implementation for setPowered()

Now that we are able to properly deal with the Tizen issue that
the adapter disappears and bluetoothd is killed, we are able to
finally implement setPowered().
fixup!