Use differential encoding for name offsets

Each name is represented as an integer range in a vector of chars.
Instead of storing the absolute offset inside this array, we can store
only the offset to the previous entry (the string size). By doing this we reduce
the number of bytes need to store an offset from 4 to 1 bytes (if we
set a maximum string length of 255).
This is however slower, since the absolute offset must be computed on
each querry by summing up all previous lengths. To limit the
performance inpact we only do this for blocks of a certain size (16).
Integrate RangeTable into server
Initial support for SharedDataFacade

SharedDataLayout was refactored to include canary values at the
boundaries of each memory block. This makes it easy to detect overruns
and block-size mismatches between osrm-datastore and the
SharedDataFacade.
Constify some parts of RangeTable
Fix off-by-one since back() gives last value inside [begin,end)
Fix edge cases in RangeTable
Removed SSE code in RangeTable to rely on compiler optimazation
Add array inlcude
Fix some minor style issues
Fix VC2013 issues
Another VC2013 fix
Merge branch 'TheMarex-diffencoding' into develop