Bug 588: Adding jogamp.version property, i.e. 2.0.2-rc-<TIMESTAMP> used for Manifest ; Common jogamp_int_version for Android.

Until 2.0.2 gets released, the version string is 2.0.2-rc-<TIMESTAMP>
and used in the Manifest for IMPLEMENTATION_VERSION.

The previous build version name of IMPLEMENTATION_VERSION
goes into the new tag IMPLEMENTATION_BUILD.

Further more, we use a common jogamp_int_version for Android, to make life more easy.
Move *_base_version to jogamp.version.base: Unifying base version across all core modules
Align integer version property name .. jogamp_int_version -> jogamp.version.int
Revert version.timestamp to yyyyMMdd only, i.e. w/o HHmm

Changes in hour/minute is not only overkill, but may confuse our aggregation scripts, which compare versions.
Out nodes time daemon may not be in synchronized that well.
VersionUtil: add getManifest(.., String[] extensions) variant, allowing detection of multiple ordered extensions
ArrayHashSet: Add ctor w/ initialCapacity and (initialCapacity, loadFactor)
gluegen: use explicit ArrayList constructor to avoid @SuppressWarnings and clone()

ArrayList.clone does _not_ make a shallow copy, a new internal array is allocated.
As such, there is nearly no benefit to using clone().

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
gluegen: use enhanced for-loops in ArrayHashSet

Fixes an infinite loop in addAll due to the following line:
mod = mod || add(iter.next()) ;

After the first successful add, mod will be true and thereafter iter.next
will never be called again, due to || shortcutting.  the loop will then run forever
as any further elements will never be taken from the iterator, so hasNext will always
be true.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
gluegen: remove executable bit from java and c source files

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
IntBitfield: Add optimization path w/ int bitCount bitfield range. Replace '* 32' -> '<< 5', same for division.
Merge remote-tracking branch 'hharrison/master'
IntBitfield: Add bit-count, O(1) per int-element, using HAKEM.
Bug 715: Adding unit test w/ 'intArrayCopy(int *dest, int *src, int num)' to test array offset working correct.

The 'carray' pointer returned from GetPrimitiveArrayCritical(..) is moved about the array offset
and used in ReleasePrimitiveArrayCritical(..) to release the pinpointed memory.

Even though this 'is' a bug by violating the _sparse_ specification, Hotspot impl. doesn't use the value at all (NOP)
and hence this code didn't produce an error since .. (Same w/ Dalvik).

A followup commit will fix this issue.
Fix Bug 715: Don't modify 'carray' pointer returned from GetPrimitiveArrayCritical(..)

The 'carray' pointer returned from GetPrimitiveArrayCritical(..) was moved about the array offset
and used in ReleasePrimitiveArrayCritical(..) to release the pinpointed memory.

Even though this 'is' a bug by violating the _sparse_ specification, Hotspot impl. doesn't use the value at all (NOP)
and hence this code didn't produce an error since .. (Same w/ Dalvik).

Now the array offset is added while passing the carray pointer to the native function call
and hence is no more modified and the orig. value is passed to ReleasePrimitiveArrayCritical(..).

Tested w/ GlueGen unit tests and all JOGL unit tests (on Linux x64 w/ 'a' hotspot VM).
VersionNumber: Add API doc, use final int values, remove protected 'nop' ctor; Add VersionNumberString [extends VersionNumber] which additionally holds the orig. string value.
make/gluegen-cpptasks-base.xml: Expose evaluated 'isI386' and 'isAMD64' property, allowing to trigger x86_64 -> x86_32 crosscompilation.
build.xml: fix intendations
Add 'glibc-compat-symbols.h' to force usage of minimal GLIBC symbols currently for memcpy only, used in our x86_32 and default gcc toolchain cmake file.

Note: JogAmp's minimum GLIBC is 2.4 due to '__stack_chk_fail' (stack overflow checking)

  GLIBC 2.4 - March 2006  - Standard for LSB 4.0, Used in SLES 10

We could add compile/link option '-fno-stack-protector', however stack protection seems reasonable
and a pre 2006 distribution a bit too 'far fetched' for our multimedia bindings anyway.

+++

Added convenient script 'make/scripts/check-glibc-version.sh' to sort and list GLIBC versions per symbol.

+++

Besides openal-soft (commit 554b34927cd6a2e0c0ce227108ebf8521bcba889),
jogamp modules do not reference any GLIBC symbols > 2.4 per default!

If so, 'glibc-compat-symbols.h' should be included per default!
glibc-compat-symbols.h: Add __arm__ -> GLIBC_2.4 ; default is now GLIBC_2.2.5 // Still minimum required is GLIBC_2.4!
Modify linux-arm scripts for new toolchain (crosstools-ng) ; gluegen-cpptasks-linux-armv6hf.xml: Enable cc-arg '-mfloat-abi=hard' ; Add script make*all.sh