Added Memory Mapped File

First round of refactoring.
Added Memory Mapped files for increased read performance.
Removed old LZ4 library code.
TODO:
  - Thread Local Storage
  - Thread Local Error message
  - 32bit and 64bit archive entries
  - HashMap based looked instead of split search
Added Thread Local Storage
Added Thread Local Storage
Merge branch 'yaafv2' of github.com:LeanderBB/YAAF into yaafv2
Refactoring Changes

YAAF_File now uses memory mapped files.
All compression is now block based.
Internal API can now handle different compression
algorithms.
Added LZ4 source as a git module.
Added LZ4 block compression.
YAAF_FileSeek now use block info to skip ahead instead of
decompressing all the data until the offset has been
reached.
Refactoring.

Only compressed blocks are kept in cahce.
Uncompressed blocks are read directly from the memory mapped file.
Added small exmaple to test compression and decompression.
Updated YAAFCL tool to be compatible with YAAF
Refactoring & Fixes

Added Documentation to YAAF.h.
Fixed issue with 0 sized files, these are ignored now.
Added checks to verify YAAFCL does not generate archives that cannot be
handles by 32bit offsets.
Refactored YAAFCL to follow current code conventions.
Archive Check

It is now possible to verify the integrity of the contents in
the archive.
Manifest List Hash Check

Archive now checks wether the archive manifest entry list
has not been corrupted.
Updated Header File
Fix Clang build erros on Linux
Updated Readme, seperated YAAF_Hash
Verify per Time and 4byte time instaed of 8
Updated lz4 checkout

Now its also possible to just use the xxhash from the lz4
checkout.
Fixed Symbol visibility
Added Shared Library build
Added ARM CPU Detection
Set correct build modes for IDE
Fixed Errors

Fixed depency in libyaaf
Fixed eof case where the file size is less than the buffer