Android Launcher: Fix ClassLoaderUtil's JNI lib-path determination, use ApplicationInfo's nativeLibraryDir (API level 9).

On Android > 4.0.3 (maybe even earlier), w/ a split filesystem (internal and SDCARD)
the JNI libs maybe stored at a different location than it's data path.
ApplicationInfo's nativeLibraryDir properly determines the JNI storage location, hence use it.

Prev. code also derived JNI lib path by the launcher's ApplicationInfo's nativeLibraryDir,
which might be different than the user package's nativeLibraryDir.
This is especially true, since the launcher may not hold any native libraries.
Android build scripts: Fix env. name ANDROID_SDK_HOME -> ANDROID_HOME

Intuitively I assumed ANDROID_SDK_HOME to be pointing to the SDK root dir,
however this is not true: Semantics by Android tools are:

ANDROID_SDK_HOME - Users ~/.android folder
ANDROID_HOME     - SDK root folder
Complete commit 43163af2618a0aaa3cf41de8027ef402d7e89cc3 - jogamp-androidtasks.xml was using ANDROID_SDK_HOME, -> ANDROID_HOME
Refine AWTEDTExecutor.invoke(..): Allow control whether a non AWT-EDT may execute the runnable.

For some 'rare' AWT/GL lifecycle actions, it is required to only run the command on the AWT-EDT,
hence adding an argument determining the restriction.
Fix Bug625: StructAccessor missing setShortsAt() and getShortsAt() methods for short[]

For short[] Java code gets emitted for an StructAccessor object that uses:
  void setShortsAt(int i, short[] shorts)
  short[] getShortsAt(int i, short[] shorts)

Problem was that StructAccessor.java had no such methods - added.
Add com.jogamp.common.util.PrimitiveStack (FloatStack and IntegerStack), a simple primitive stack implementation.

Currently only FILO put/get operations are implemented using either
primitive arrays as I/O itself or <Type>Buffer.

Unit tests are included..

Note: Only FloatStack is implemented in a manual, where others (IntegerStack)
      is derived (generated) from it. Same goes w/ unit tests.
PrimitiveStack: Add 'void position(int)' to set new position. Add test case w/ initialSizeElem:=0.
README: Add new IRC channel, mark Jabber deprecated
Android Completion for launching main() class via MainLauncher; Fix ActivityLauncher order of delegation/super activity callbacks.

- StaticContext:
  - Add ViewGroup for standalone tests w/ UI

- MainLauncher/LauncherUtil:
  - Complete launching a main() class from our activity launcher
  - adding main-cmdline-args

- ActivityLauncher
  - Fix order of delegation/super activity callbacks.
Buffers: Fix typo
RecursiveLock.getHoldCount(): Fix API doc formatting
test script
PlatformPropsImpl: JAVA_RUNTIME_NAME is null using GCJ gij JRE.

Signed-off-by: Xerxes Rånby <xerxes@zafena.se>
Buffer.isDirect() operation is undefined w/ Eclipse ecj and GCJ gij JRE.

Fix for the runtime error using GCJ gij JRE:
java.lang.NoSuchMethodError: method java.nio.Buffer.isDirect with signature ()Z was not found.
at com.jogamp.common.nio.Buffers.isDirect(Buffers.java:363)

Also Eclipse ecj refuses to compile code using java.nio.Buffer.isDirect().
----------
1. ERROR
...
        return ((Buffer) buf).isDirect();
	                      ^^^^^^^^
The method isDirect() is undefined for the type Buffer

Signed-off-by: Xerxes Rånby <xerxes@zafena.se>
Merge remote-tracking branch 'xranby/gcj-gij'
Modified Java 1.5 Buffers patch 2b7d1b1d25cb2cd73311ec9159b465f0391bf5e0 - May break GCJ/ECJ .. needs to be revised.

- Adding JAVA_6 in PlatformPropsImpl
- Buffers.isDirect() chooses fast-path iff JAVA_6, otherwise using reflection (GCJ/ECJ)
- Adding JAVA_6 info in VersionUtil
- API doc: Refine JAVA_SE and JAVA_6 spec.

TODO: In case GCJ etc is unable to compile the JAVA_6 code
      even though it uses a static condition (probably not),
      We have to wrap isStatic in an own class, one for JAVA_6 and one for <= 1.5.
      This will be a good exercise for further issues we may have w/ Java <= 1.5.
Add MainLauncher adb launch script. Here we only utilize non-root features, i.e. can be launched on non-hacked device.
MainLauncher: Remove Thread.destroy() - n/a on Android ..
Fix ActivityLauncher/MainLauncher .. and make adb-launch-main more suitable

- ActivityLauncher
  - no finish() from onDestroy()

- MainLauncher
  - finish activity after returning 'main()' returns
  - no finish() from onDestroy()

- adb-launch-main:
  - Clear logcat
  - Wait until activity is stopped
  - Dump logcat to local logfile
adb-launch-main: logcat: append to log