[Application] Refactor the implementation of Application::Launch()

The goal of this refactor is to reduce to remove the duplicated logic
for runtime creation, so that we can change to pass more attributes in
the future.

This patch splits the logic for launching into

(a) figure out the right entry point, based on the launch params;
(b) create the runtime.

We have three possible entry points for (a), but the logic for (b) is
pretty much independent. While we still record the use entry point to
decide whether a window will be shown, there's no "tentantive steps" so
we can write only one code for (b).

(cherry picked from commit 165c90944507946e13a7d9fd342ba37dedd9393e)
[Runtime] Fill the default window params in AttachWindow()

This makes Runtime::AttachWindow() more useful, since we can change just
some parameters for window creation and the defaults would still apply.
A later patch will make use of this to pass specific information from
the application launching to the native window creation (NET_WM_PID).

The fullscreen override was moved to that apply function, so strictly
speaking we can't attach a non-fullscreen window when the fullscreen is
passed. However, we were not trying to do this anyway. Added a comment
pointing that this policy check was probably in the wrong place.

(cherry picked from commit 6fef7e46f4c50b46294f96a730c55708286e76dc)
Remove extra URL validations from Application::GetURLFrom.. methods

Remove extra URL validations from Application::GetURLFrom.. methods since
Application::GetURLForLaunch already contains the validation. Remove also
unneeded warnings.

(cherry picked from commit ffd655deaff410a534ae405a2e49fb2d0b052656)
[application] HasMainDocument() should consider actual entry point.

Application::HasMainDocument() should consider the application entry point (whether
application has actually started from 'app.main') rather than just check presence of
this field in the manifest. Otherwise we'll have a bug if the manifest has an invalid
value at 'app.main' and the corresponding app has started from a different entry point.

(cherry picked from commit 65a8261fb2aabc21792b49c2e7365a6541b48bc5)
[Application] Allow passing the NET_WM_PID as a LaunchParam

In Tizen, the windows of applications launched in service mode should
have their X11 property NET_WM_PID set to the launcher PID, so that the
task manager can find the right X11 window associated with each
application launched.

This commit prepares the ground, a separate patch will actually get the
PID information and set the launcher_pid parameter.

(cherry picked from commit 2b20692615e4e8885af3d03e0cfb5e39dab4a18f)
[Application][Linux] Pass the PID of the launcher to Crosswalk

This finishes the work of associating the applications windows with
their launchers, so the Tizen task manager can locate each application
window.

This adds a 'pid' parameter to the Launch() method, that should be
the PID of the launcher process.

(cherry picked from commit 26c4eb9e63307ea4868cee30c06879b9e7df4d20)
Merge pull request #1537 from vcgomes/crosswalk-4-net-wm-pid

[Application][Tizen] Add support for using the Tizen task manager to change to Crosswalk applications