Replaced time spans with a timegap encoding compact for short *and* long gaps.

`EventID` values must be 5-bit integers. In profile data, an `EventID`
is packed into a byte with a 3-bit `byteCount` value, which specifies
the number of bytes immediately after the `EventID`/`byteCount` byte
used to encode time since last event. Each of these bytes consists of 7
bits of the 'time elapsed' value (first byte - lowest 7 bits, second
byte - higher 7 bits, etc. with as many bytes as there are (at most 7)).
The highest bit is always set to 1 (to ensure the byte zero).
README update.