Substituted String.format with a simple String concatentation, in order
to enhance performance
Substituted calls to String.replace(String, String) with
String.replace(char, char), in order to enhance performance
Added Java7-equivalent of Java8's Supplier; to be used by
caches/memoizers
Added thread-safe memoizer (with inner Optional class)
Added cache with three generic parameters: key type, value type and
thrown exceptions (if any)
- added support for caching of various metadata generated/used by
APARAPI, thus avoiding the need for re-generating them on each kernel
call (or, worst, when a new Kernel is instatiated)
- added support for finding method properties (such as method using
atomics 32, OpenCL mapping, etc.) based on full method signature, not
only name
- added support for OpenCL-mapped methods user-defined, i.e., outside of
Kernel class
- added two OpenCL-mapped methods 'hypot' in Kernel (more to come)
- added support for ForkJoinPool-based JTP execution (this avoids
creation of a high number of threads for ranges having local sizes
significantly higher than the number of system CPU cores)
- added support for skipping local barriers altogether in JTP execution,
when a local size (x * y * z) equal to 1 is detected
Added some test code to demonstrate cache performance
Factored out code instantiating KernelRunner before use
Reduced computational weight of bytecode generation by moving reflection
upon constructor in ByteCode's constructor (was in newInstruction()
method)
Merge branch 'caching' of https://github.com/log2/aparapi.git into caching
Made all caches enabled by default
Fixed some formatting issues
Merge remote-tracking branch 'upstream/master' into caching

Conflicts:
	com.amd.aparapi/src/java/com/amd/aparapi/internal/kernel/KernelRunner.java
Merge pull request #2 from log2/caching

Added support for metadata caching, FJ pool in JTP execution and minor speed-ups
Merge pull request #3 from aparapi/master

Align with latest APARAPI commits