[Android] User TextureView as the default rendering backend view.

There are several issues with SurfaceView rendering backend, including:
(1) Can't be animated/transformed/translucent.
(2) Multiple SurfaceView overlapped in the same ViewGroup will cause undefined behavior.

Those are not issues for Chrome for Android, since Chrome for Android uses only
one SurfaceView and everything is painted/compsited inside the SurfaceView.
But for Crosswalk, we may have multiple SurfaceViews for each embedding App, so the
drawbacks of SurfaceView may cause some bugs.

This CL makes TextureView as the default rendering backend, which can overcome the
drawbacks of SurfaceView. Eventhough the TextureView increase more memory usage.

To switch back to SurfaceView,set the ANIMATABLE_XWALK_VIEW preference value to be
false before using XWalkView.

BUG=
[Tizen] Re-orginize application storage code

Move application storage to a "Tizen-only" place.
Drop the sqlite-based application storage implementation
as it is not used by anyone.
[Android] Handling onNewIntent() in runtime extension

Pass onNewIntent() from XWalkRuntimeActivityBase down to extension
manager to make all the extensions aware of onNewIntent().

BUG=XWALK-2378
Merge pull request #2389 from crosswalk-project/use-texture-view-by-default

[Android] User TextureView as the default rendering backend view.
[Android] Multiple profile support

Add profile in the path of disk files used to save
user data. Embedder can specify profile by XWalkPreferences.

The profile must be set before any XWalkView instance created
to take effect.

TEST=org.xwalk.core.xwview.test.ProfileTest#testCustomizeProfile
BUG=https://crosswalk-project.org/jira/browse/XWALK-2375
Merge pull request #2420 from wang16/profile

[Android] Multiple profile support
Merge pull request #2419 from jondong/onNewIntent

[Android] Handling onNewIntent() in runtime extension
Merge pull request #2413 from pozdnyakov/reorg_application_storage

[Tizen] Re-organize application storage code
[Android] Remove xwalk_core_library_java.jar from the AAR package.

This fixes another regression inherited from the previous version of the
script, and is also required for XWALK-1930: xwalk_core_library_java.jar
is not supposed to be packaged twice, it should be present as
classes.jar and not be part of jni/.
Merge pull request #2421 from rakuco/even-more-aar-packaging-fixes

[Android] Remove xwalk_core_library_java.jar from the AAR package.
[Android] Stop enclosing keystore-related Ant parameters in quotes.

Let the subprocess module take care of separating and escaping each
parameter instead. Not doing that causes different errors depending on
the platform:

* On Windows, the double quotes will be part of the values passed to Ant
  and will thus not be found, or the values of things such as passwords
  will contain extra characters and fail validation.

* On Unix platforms (this was tested on Debian), entries with spaces
  would be truncated at the first space character.

Adding a test for the latter is easier, so an extra key was added to
xwalk-test.keystore with the following command, with key password 'xwalk
test':

  keytool -genkey -v -keystore xwalk-test.keystore -alias 'xwalk test'
          -keyalg RSA -keysize 2048 -validity 36525

BUG=XWALK-2377
[Android] Prefer binaries with extensions in make_apk.py.

When calling a binary such as Ant on Windows, we are currently
preferring the "ant" executable over "ant.bat", even though the former
is actually a shell script for Unix installations.

Change the preference order and check for binaries with extensions
first.

BUG=XWALK-2377
[Android] Pass full paths when invoking `android' and `ant'.

Since we invoke subprocess.Popen() with shell=False, we cannot rely on
PATH being parsed, nor can we assume the right extension (such as
".bat") will be added to the executable we want to run. This is normally
not a problem on Unix-based systems, but on Windows we have to use
explicitly "android.bat" and "ant.bat".

Fortunately enough, we already have a Which() function calls
AddExeExtensions(), does all the required path detection and adds any
extension found in PATHEXT if necessary, so use that to determine the
right "android" and "ant" binaries to be invoked by make_apk.

It is important to note it is AddExeExtensions() that matters here -- we
just use absolute paths with Which() because it filters through all
possible executable names.

BUG=XWALK-2377
Bump version to 9.38.206.0
Merge pull request #2423 from rakuco/make_apk-windows-fixes

[Android] Make make_apk work on Windows again.
[Android] Replace print statement with print() function in make_apk.py and extension_manager.py

In Python 3 print statement is forbidden. So, all print statement should
be replaced with print() function.

BUG=XWALK-2544
Merge pull request #2425 from shawngao5/em_print

[Android] Replace print statement with print() function in make_apk.py and extension_manager.py
[REG] make_apk.py print color logs according to levels.

1 The print color and log levels.
  Green        : log.Info(),
  Blue         : log.VerboseCommand(),
  Bold Magenta : log.VerboseOutput(),
  Yellow       : log.WarningInfo(),
  Red          : log.Error()

2 Print progressbar when running time-consuming command "ant release" without verbose mode.
3 Use ANSI escape sequences on Linux.
4 The no support ANSI sequences console(e.g Windows) requires ctypes, which is included
  with Python 2.5 or later.

BUG=https://crosswalk-project.org/jira/browse/XWALK-2181