MappedByteBuffer*Stream:

- Validate active and GC'ed mapped-buffer count
  in cleanAllSlices() via close() ..

- Fix missing unmapping last buffer in notifyLengthChangeImpl(),
  branch criteria was off by one.

- cleanSlice(..) now also issues cleanBuffer(..) on the GC'ed entry,
  hence if WeakReference is still alive, enforce it's release.

- cleanBuffer(..) reverts FLUSH_PRE_HARD -> FLUSH_PRE_SOFT
  in case of an error.

- flush() -> flush(boolean metaData) to expose FileChannel.force(metaData).

- Add synchronous mode, flushing/syncing the mapped buffers when
  in READ_WRITE mapping mode and issue FileChannel.force() if not READ_ONLY.

  Above is implemented via flush()/flushImpl(..) for buffers and FileChannel,
  as well as in syncSlice(..) for buffers only.

  flush*()/syncSlice() is covered by:
    - setLength()
    - notifyLengthChange*(..)
    - nextSlice()

  Always issue flushImpl() in close().

- Windows: Clean all buffers in setLength(),
  otherwise Windows will report:

- Windows: Catch MappedByteBuffer.force() IOException

- Optimization of position(..)
  position(..) is now standalone to allow issuing flushSlice(..)
  before gathering the new mapped buffer.
  This shall avoid one extra cache miss.

  Hence rename positionImpl(..) -> position2(..).

- All MappedByteBufferOutputStream.write(..) methods
  issue syncSlice(..) on the last written current slice
  to ensure new 'synchronous' mode is honored.

+++

Unit tests:

- Ensure test files are being deleted

- TestByteBufferCopyStream: Reduced test file size to more sensible values.

-
Make Scripts OSX: Remove -java7 script, add -java6 script (default uses java8)
TestByteBufferCopyStream, TestByteBufferInputStream: Reduce load and test time
TestByteBufferInputStream: Reduce FLUSH_SOFT load
MappedByteBufferInputStream: Default CacheMode is FLUSH_PRE_HARD now (was FLUSH_PRE_SOFT)

FLUSH_PRE_SOFT cannot be handled by some platforms, e.g. Windows 32bit.

FLUSH_PRE_HARD is the most reliable caching mode
and it will fallback to FLUSH_PRE_SOFT if no method for 'cleaner' exists.

Further, FLUSH_PRE_HARD turns our to be the fastest mode as well.
SingletonTestCase: Move singleton test impl. from JOGL's UITestCase, inherit from JunitTracer and use it for all tests.

- Certain performance tests don't make sense utilizing several jenkins unit tests on one machine,
  hence singleton test execution is desired.

- JOGL's UITestCase also will derive from this SingletonTestCase
gitignore: build*/ and build-temp
SingletonTestCase: SINGLE_INSTANCE_LOCK_TO (timeout) 6 -> 12 minutes
SingletonTestCase -> SingletonJunitCase: Accomodate ClassLoader lifecycle of static fields; Change name to avoid testing itself.
SingletonJunitCase: Refine poll and release behavior

- Increase poll frequency from every 1000 ms -> 500 ms

- After releasing the lock, sleep to 6 x poll period, i.e. 3s
SingletonJunitCase: Increase TO 12 -> 15 mins, only sleep for 1 poll period (500 ms) per JVM after test class (cooperative w/ other JVM test instances)
Add ExceptionUtils: Exposing dumpStackTrace(..) and dumpThrowable(..)