[Extensions] Use a IO message loop for extensions running in a thread

Some extensions (like the RawSocket) will need this kind of main loop
for watching file descriptor events. The Chromium Socket implementation
asserts when used in a non-IO message loop.
Merge pull request #815 from tmpsantos/io_loop2

[Extensions] Use a IO message loop for extensions running in a thread
[Extensions] Decouple the FunctionHandler from the Internal Extension Context

This is the first step for removing the InternalExtension class. The idea here
is to delegate the wrapping of callback ids to the FunctionHandler and make
it optional using composition.
[Extensions] Convert the parameters of the function handlers into a struct

The previous syntax was too verbose and now with the struct, adding
a new parameter won't cause a mass rename.
[Extensions] Remove the InternalExtension class

All the functionality was moved tho the ExtensionFunctionHandler and
can be optionally used via composition.
Bump version to 1.29.11.0
Merge pull request #520 from tmpsantos/internal_extensions_refactoring

Internal Extensions Refactoring
Bump version to 1.29.12.0
[Tizen] Introduce AppcoreContext to make Tizen task switcher be able to control
Crosswalk's web applications.

Crosswalk's web application must communicate with Tizen application framework.

The most important task we need to do is to call appcore_init() in Tizen.
appcore_init() connects Tizen task manager via IPC. After calling
appcore_init(), the given process that called appcore_init() can communicate with
Tizen task switcher.

AppcoreContext calls appcore_init() with a callback function, and handles
messages in the callback function. Currently, AppcoreContext handles only
AE_TERMINATE message. When AppcoreContext receives AE_TERMINATE message,
AppcoreContext quits the Crosswalk. The task switcher sends AE_TERMINATE message
when an user kills the app on the task switcher.

AppcoreContextImpl uses private Tizen appcore API to reuse Tizen 2.0 implementation.
This private implementation of appcore is a bit huge. We will decide later
whether to maintain the code similar to appcore private implementation in Crosswalk
or not after investigating appcore in Tizen 3.0.

To concentrate Tizen implementation detail on cc file, we declare
AppcoreContextImpl that extends AppcoreContext in cc file.

NOTE: this implementation is not compatible with shared process mode, because
Tizen task switcher cannot recognize multiple tasks per process. Shared process
mode requires one Crosswalk process to include multiple tasks (= web applications).
It is not supported by current task switcher.

appcore_context.cc is similar to a part of appcore-efl.c in appcore.

BUG=https://github.com/otcshare/crosswalk/issues/609