[DRAFT] Add XWalkComponent interface

DO NOT MERGE.

To organize the subsystems, this patch changes XWalkRunner to keep a vector of XWalkComponent. A XWalkComponent holds a subsystem and has hooks for important points for Crosswalk BP lifetime, e.g. when it's time to create extensions.

This insulates XWalkRunner from details of each subsystem, and also will provide better ways for controlling what is enabled/disabled in Android/Tizen. One good side effect is that we are cleaning the Android/Tizen variants of XWalkBrowserMainParts.

New features for Crosswalk that needs to create objects or extensions, should consider creating a XWalkComponent.

New interesting hooks that are useful to one or more features should be added to XWalkComponent interface.

See commit messages for more details.

This PR depends on #1449.