[Mac] Fix the build

[chromium-style] Overriding method must have "virtual" keyword.
[Android] Handle android Action Uris

These Uris are used for android intent to start
activities to:
1. make phone calls;
2. send sms;
3. send emails;
4. look up map for geolocation;
5. search apps in market.

BUG=https://crosswalk-project.org/jira/browse/XWALK-226
    https://crosswalk-project.org/jira/browse/XWALK-155
    https://crosswalk-project.org/jira/browse/XWALK-154
TEST=org.xwalk.core.xwview.test.HandleActionUriTest
[Application] Move package details inside ApplicationService

These are details for package installation that belong to
ApplicationService object, which is responsible for installation and
uninstallation of packages.
Build fix, destructor must be virtual

RuntimeRegistryObserver has virtual methods, so destructor must be virtual.
This check is enforced on the Mac and the build fails.
Don't use namespace directive in global context in header

On Mac, the build fails with
../../xwalk/sysapps/raw_socket/raw_socket_object.h:11:31: error: using namespace directive in global context in header [-Werror,-Wheader-hygiene]
Sort file names in xwalk_application.gypi
[Android] Disable one test case about remote debug.

This patch disabled the test case "testDisableRemoteDebugging".
It is failed on trybot, but passed on buildbot. It can not be
reproduced on local machine.
It will be enabled later when we find the root cause.
[Android] Add runtime core API copyBackForwardList

1 This class contains the back/forward list for a XWalkView.
XWalkView.copyBackForwardList() will return a copy of this class
used to inspect the entries in the list.
2 Add the API of XWalkView which is needed by the Cordova Container.
3 Implement BackForwardList and WebHistoryItem by wraping
org.chromium.content.browser.NavigationHistory class.

BUG=https://crosswalk-project.org/jira/browse/XWALK-330
[Android] Add runtime core APIs saveState/restoreState

1 XWalkView.saveState() saves the state of the XWalkView to a
Bundle; XWalkView.restoreState() restores the state of the
XWalkView from a given Bundle.
2 Add the two APIs of XWalkView which are needed by the Cordova
Container.

BUG=https://crosswalk-project.org/jira/browse/XWALK-330
[Android] Add saveState, restoreState test cases

Disable one test case as there is a blocking issue in
core test framework.

BUG=https://crosswalk-project.org/jira/browse/XWALK-330
Merge pull request #1126 from wuhengzhi/remotedebug

[Android] Disable one test case about remote debug.
Merge pull request #1091 from xingnan/backforwardlist

Add core APIs: copyBackForwardList, saveState, restoreState
Merge pull request #1094 from wang16/external_protocol

[Android] Handle android Action Uris
[Packaging] Introduce gbp-flat-tree.sh to simplify the Tizen build process.

TL;DR: one can simply do the following to build an RPM:
  cd /path/to/src/xwalk
  gbs build -A i586

We can get rid of the need for a separate git tree and the
generate-flat-tree.sh script by relying on the hooks provided by
git-buildpackage: the postexport hook that we use is called right after the
git repository's sources have been exported with `git archive`.

In this hook, we execute a new script, `gbp-flat-tree.sh`. It does pretty
much the same thing as generate-flat-script.sh, but automatically. That is,
it removes the tarball generated by `git archive` (since gbs build should be
called from xwalk/, it would only contain Crosswalk's contents anyway) and
replaces it with a new one with the contents of src/.

Since it is called at a stage in the whole build process that immediately
precedes the call to `/usr/bin/build`, we do not need to keep a separate
flat git tree with all our sources anymore; we are effectively bypassing
git-buildpackage's default export mechanism.

The downside of this approach (which is shared by the previous one with
`generate-flat-tree.sh`, anyway) is that all files in src/ are archived,
even if they are not part of any commit. In other words, we end up acting as
if "--include-all" was always passed to `gbs build`.

(Fun fact: the whole dance of calling `gclient recursive` twice with
different arguments and everything was unnecessary; one of the entries
reported by those calls is src/ itself, so we always ended up archiving
everything under it)
[Application] PackageInstaller doesn't need to be RefCounted

That capability is not used in the code, so it's better to remove it. An
unused constructor was also removed.

This patch also adds a small class comment to PackageInstaller.
[Application] Move handling of management commands to ApplicationSystem

This patch is more about moving this logic out of XWalkBrowserMainParts
to a more reasonable location. We may decide to move this handling code
later (to hid it more) when implementing the IPC-based handling of the
mode.

Another outcome is that the logic for launching applications (and all
its cases) is clearer now.
[Application] Move logic for launching app to ApplicationSystem

Main motivation was to abstract this complexity away from
XWalkBrowserMainParts. ApplicationSystem now deals with the different
ways to pass the app id in the command line.

It turns out that after the refactoring, we can see that Tizen sensor
initialization wasn't being called in some cases when running
applications.
[Application] Remove unused includes from XWalkBrowserMainParts
Merge pull request #1106 from cmarcelo/hide-app-details

[Application] Hide details from XWalkBrowserMainParts
[Packaging] Accept other build directories to support incremental builds.

TL;DR: Specify a directory outside the RPM build area with the BUILDDIR_NAME
macro to have incremental builds:
  cd /path/to/src/xwalk
  gbs build -A i586 --define 'BUILDDIR_NAME /tmp/crosswalk-builddir'

A full rebuild was being performed in every call to `gbs build` due to two
issues:

1. rpmbuild erases the RPM build directory by default in the %setup stage of
   the spec file. This can be solved by passing -D to %setup, but...
2. osc-build (`/usr/bin/build`) removes the whole RPM build area (that is,
   `/home/abuild/rpmbuild`) by default unless we pass "--incremental" to
   `gbs build`. Unfortunately, suffice it to say that the implementation of
   that option in gbs leaves a lot to be desired and does not solve our
   problem.

This can be solved by exploiting the way gyp generates Makefiles: it is
possible to override the default value "out" of the `builddir_name` variable
and have out-of-source builds. We can thus point it to a location outside
`/home/abuild/rpmbuild` in the chroot and automatically preserve it across
builds, as the rest of the buildroot is kept by gbs by default.

We then allow the user to specify a different build directory with the
`BUILDDIR_NAME` RPM macro that can be passed to gbs as explained in the
beginning of the commit message. One of Chromium's tools, grit, also had to
be fixed to allow out-of-source builds to work correctly, which explains the
addition in DEPS.xwalk.

Another thing worth mentioning is that we now use the `-n` option of the
%setup macro in the spec file as the root directory of the source tarballs
do not have Crosswalk's version anymore: even if those two problems related
to the removal of the build directory above are worked around, a full
rebuild is triggered if the source directory gets changed (think of a
version number bump, for example). While at this, it is also worth bearing
in mind that a change in CFLAGS or CXXFLAGS also triggers a rebuild, so
calling make directly from inside the gbs chroot without using the same
compiler flags as the RPM build will also cause problems.

Last but not least, the generate-flat-tree.sh script and its instructions in
the README will be removed in a later commit, once we get more people to
test the new solution.