Differantial encoding for name offsets

This PR implements differential encoding for the offsets of street names in the name vector.

This approach only used about 1/3 of the previous memory (20 bytes vs. 64 bytes for 17 offsets). However since the memory needed to store this information is only a few MB, this won't be too noticeable.

Hopefully RangeTable can be reused later for some other parts of OSRM to bring further memory reductions.