[Extensions] Check validation of XWalkExtensionInstance before binding callbacks.

There is race condition that sometimes CreateInstance() return invalid
XWalkExtensionInstance.

So far, this crash does not happen on any C++ extensions or Android
extension tests. Only happens on CordovaTests apk. And worse and worse
when loadUrl calling times increased.

Meanwhile, the Android speicific function RegisterExtension() and
UnregisterExtension() are removed from xwalk_browser_main_parts.h

BUG=https://crosswalk-project.org/jira/browse/XWALK-1688
Merge pull request #2222 from halton/validate_instance

[Extensions] Check validation of XWalkExtensionInstance before binding callbacks
[Android] make_apk: Stop using options.name everywhere.

As the options.name is verified and transformed at beginning ,
we should not use it directly later, use the transformed name instead.
[Android] make_apk: Verify and transforms options.name once.

Verify and transforms options.name are being performed in many places,
consolidate all these codes, do it once.
[Android] make_apk: Refine the naming of AppInfo.

app_info.name => app_info.android_name,
android name will be used for Android project name, APK file name and Activity name.
app_info.original_name => app_info.app_name,
app_name will be used for the Android application name.
make it easier to read.
[Android] make_apk: Generated android name by package.

Try AppInfo.android_name is currently generated from options.name,
but the restrictions on options.name's value will be lifted in an upcoming commit.
That cannot happen to android_name,
so we now generate it from the package name passed via the --package option.
[Android] make_apk: Accept any string to be application name.

The new w3c manifest spec requires accepting any string to be application name.
However in previous make_apk process, they were treated as invalid input.