bluetooth: Fix parameter verification according to API spec

The tests expect us to be more careful with that are passed as parameters
than we are at the moment.
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

There's no need to wait for the 'PropertyChanged' signal before
sending the reply to the caller. BlueZ guarantees that when
'SetProperty' returns the property will be applied on the adapter (or
an error will be returned).

The 'PropertyChanged' should be used for monitoring if another
application has changed the adapter's state.
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().
bluetooth: Fix using the "Name" property

The Name property may not be always available. The "Alias" property is
always present, and has the benefit of being user modifiable, useful
when the user wants to change the device's name to something more
recognizable.
bluetooth-demo: Add support for enabling/disabling the adapter

This updates the demo with the setPowered() support that was recently added
to our Bluetooth API.
bluetooth: Fix trying to call non-callable callbacks

In case the user passes wrong objects in the 'onfinished' or
'onstarted' callbacks, we should not try to call them if they
are not functions.