Before: span start had millisecond precision because we just use
`currentTimeMillis` to get span start time.
This creates weirdly looking traces where spans 'fly' way out of
parent spans if they have sub-ms length.
After: we establish 'trace start time' with millisecond precision and
measure all span start and stop times from that. This means all
relative times are maintained with nanosecond precision (or whateve OS
clock fives us).
This is POC and some things are not yet fixed. E.g. JMS1
instrumentation injects time into span manually - and it is not
apparent how to pake it do so relative to trace clock.
Note: going forward this should allow us to completely get rid of
'double time keeping' we currently have in `DDSpan`.