IOUtil: Fix API doc; getTempDir(..) shall throw IOException instead of RuntimeException for IO failures

- Fix API doc
  - copy*() methods only close stream they open, no need to mention the proper behavior (obvious).

- getTempDir(..) shall throw IOException instead of RuntimeException for IO failures
  - Ease using getTempDir(..), i.e. only handle IOException
Bug 1080 - Add read support for memory mapped big file I/O via specialized InputStream impl., incl. mark/reset

- ByteBufferInputStream simply impl. InputStream for an arbitrary 2MiB restricted ByteBuffer
  - Users may only need a smaller implementation for 'smaller' file sizes
    or for streaming a [native] ByteBuffer.

- MappedByteBufferInputStream impl. InputStream for any file size,
  while slicing the total size to memory mapped buffers via the given FileChannel.
  The latter are mapped lazily and diff. flush/cache methods are supported
  to ease virtual memory usage.

- TestByteBufferInputStream: Basic unit test for basic functionality and perf. stats.