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.
That one is actually needed, because otherwise you can't use the stream operators. (And I won't get the default constructor because I already defined constructors)