Merge pull request #684 from cmarcelo/remove-old-c-api

Remove old C API and support code needed for it
Separate Client<->Server messages from regular Extension messages

IPC has a way to identify the messages by "class", based on the MsgStart
identifier, by using the IPC_MESSAGE_CLASS() macro. This will make
filtering of messages for client<->server interface easier.
Make extension instances run in a single shared thread

This is a change on the execution model of the extensions. The code for
each instance used to run in its own thread. In the Browser Process, for
in-process extensions, they'll run in a dedicated extension thread. In
the Extension Process, they'll run on the main thread. Of course,
extensions still have the freedom to create their own threads.

Two main reasons for changing execution model are:

(a) In practice our use cases for external extensions, instances needed
to interact with glib-based libraries, and all the callbacks ended up
going back to the main thread. We were not collecting much benefit of
implicitly creating threads.

(b) Sharing data between instances now will be easier, since it won't
imply sharing data between multiple threads. One common problem is that
when writing instances, the jump from "simple case" to "multithread
bugs" was too small. It was too easy to face race conditions without
being aware of them.

One notable change is that we stop using XWalkExtensionRunner
abstraction. Now that we have an object dedicated to manage the
instances (XWalkExtensionServer) we don't really gain much from the
indirection -- as can be seen in the patch diff.
Remove XWalkExtensionRunner abstraction

We don't use this anymore. It made sense back in time when there were
not a specialized object to handle instances (we now have
XWalkExtensionServer) and when there was complex logic involved in
running each instance in a separated thread.