Fixes the incomplete CORS support by adding the Allow-Headers header
Adds tests for the headers in the CORS allowed header config variable

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Fix TestTSUIDQuery where the UID name lookup is not async now

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Handle duplicate timestamps

Duplicate timestamps are handled automatically with last-written wins.
In addition, the compaction code is cleaned up and unified - instead of
having separate code paths for trivial and complex compactions, there is
only one code path.  However, it is faster than the trivial path was
before, particularly for large rows.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add tests
These tests would have detected this missing return value in the case
of a single datapoint.
Fix for handling bare annotations
I changed the way SpanGroup deals with annotations - rather than collecting the
from the set of data points that passed the filter, the set of annotations is
built up front.
This allows us to handle Spans with no data ponts but an annotation.
Change # of entries estimate, revert @Overrides

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add some compaction unit tests

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>