[Bookmark] Add stubs for extension native code

Note that we had to depend on evas since favorites.h from
capi-web-favorites does include Evas.h, and its pc file doesn't
explicitly include evas.

EvasObject type is used for manipulating the favicons.
[Bookmark] Implement JS API on top of a fake provider

This patch adds a complete JS API, including all the error handling
covered by TCT tests. The public API is implemented in terms of a
BookmarkProvider object.

At the moment there's a FakeBookmarkProvider implemented, that stores
all the data in JavaScript. This was used to bootstrap the JS API and
implement the error handling. As the name implies, it doesn't actually
store the bookmarks in the real database.

Next step is to replace 'FakeBookmarkProvider' with a real provider
object that communicates with the native side of the extension.
Merge pull request #188 from vcgomes/bluetooth-socket-operations

Bluetooth socket operations
Merge pull request #186 from cmarcelo/bookmark

[Bookmark] Add JS bits of bookmark
bluetooth: Works around the C++0x bluetooth.h issue

bluetooth.h uses 'typeof', which was removed in C++0x (it was replaced
by decltype() and declval(), but they have different semantics).

So if we want to use C++0x features, we have to work around this bluetooth.h
limitation.
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.
fixup!
debug