[Extensions] Add a setter callback accessor to trampolines

Prior to this patch we weren't supporting trampolines with setter
callbacks. This patch enables extensions so can implement an API
to be used like:

"window.onFooChanged = function() { foo("teste"); };"

and use window.onFooChanged as an entry point to an extension called
xwalk.sample, for instance.

BUG=https://crosswalk-project.org/jira/browse/XWALK-835
TEST=./out/Release/xwalk_extensions_browsertest --gtest_filter="MultipleEntryPointsExtension.*"
Merge pull request #1479 from jeez/lazy-load-setter-callback

[Extensions] Add a setter callback accessor to trampolines
[Extensions] Fix entry points for Screen Orientation Extension

After commit 856353beba8a8318c51da3d672af187d7fd58ada, entitled
"[Extensions] Add a setter callback accessor to trampolines",
we can now use screen.onorientationchange as a valid entry point.
Merge pull request #1481 from jeez/fix-screen-orientation

[Extensions] Fix entry points for Screen Orientation Extension
Fix orientation sometimes getting stuck in current orientation after unlock

While we are locked the display_.rotation() can get out of sync with the
actual device orientation, so we need to find the best orientation given
the actual orientation, not the old one.
Merge pull request #1486 from kenchris/stuck

Fix orientation sometimes getting stuck in current orientation after unlock
Make sure screen.orientation is always valid

If the orientation has not been set by the extension yet, query it
synchronously.
Merge pull request #1488 from kenchris/sync

Make sure screen.orientation is always valid
[Application][Tizen] Move the installation steps into a new file

When running Crosswalk on Tizen in the 'run-as-service' mode we use
the new installation mode, that only a small binary will run as root.
[Packaging] Set the install helper tool as 'set-user-ID-root'

This will allow this tool to finish the last pieces of the installation
of an application: copying the icon to the right place and adding the
application meta-data to the central application database (via a XML
file that is also kept in a central place).
[Application][Tizen] Simplify the installation steps

We can keep the application binary (that will be a link to the xwalk-launcher)
binary inside a user created directory (data_dir), this allows for some
simplification.

Error are printed in the standard output, so the 'GetAppOutputWithExitCode()'
can print bettter error messages if installation/uninstallation fails.
[Application][Tizen] Change the effective UID of the application to 'root'

When adding the application metadata to the application
database (pkgmgr_parser_parse_manifest_for_installation), it is
required that the process has 'root'(0) UID so the
installation/uninstallation can proceed.
[Application][Tizen] Exit the application when the TERMINATE event is received

If we want the application to quit after it is terminated via the
Tizen task manager, we need to handle this event.

As Crosswalk will be following the unique name of the launcher process
and will kill the appropriate application when its launcher exits the
D-Bus session bus, simply calling exit() is enough.
[Application][Tizen] Be more tolerant of the parameters passed to xwalk-launcher

When the application is launched via the Tizen application
launcher (or via launch_app), it will be launched with more parameters
than we actually care, but if its argv[0] is a valid application ID,
that's all that we need.
[Application][Tizen] Separate paths for potencial conflicts

In the cases that we install files in the same path that the "old" way
would, use 'xwalk-service.'  prefix to keep these cases apart avoid
messing with old installations.
[Apllication][Tizen] Install a default crosswalk icon if no icon is provided

If the application being installed doesn't provides an icon, we install the
default Crosswalk icon as the icon for that application.