Initial checkin of TimelineLoadGenerator, which at this point only does inserts
In looking at statistics from xnb3, it became clear that the sampling
time compression is so good that there is only downside in sharing
sampling time information between timeline chunks.

So this dev-dstryker checkin is a major overhaul, eliminating
TimelineTimes and TimelineChunkAndTimes and all the associated
machinery.  After the checkin, all unit tests pass.

collector/src/main/java/com/ning/arecibo/collector/persistent/TimelineAggregator.java:

    Aggregate directly into TimelineChunks.

collector/src/main/java/com/ning/arecibo/collector/persistent/TimelineAggregatorDAO.java:

    Remove TimelineTimes methods, and choose more appropriate names.

collector/src/main/java/com/ning/arecibo/collector/persistent/TimelineEventHandler.java:

    Replace use of TimelineChunkAndTimes with TimelineChunk.

collector/src/main/java/com/ning/arecibo/collector/resources/HostDataResource.java:
collector/src/test/java/com/ning/arecibo/collector/AccumulatorConsumer.java:
collector/src/test/java/com/ning/arecibo/collector/TestEventCollectorServer.java:
collector/src/test/java/com/ning/arecibo/collector/TestTimelineChunkAndTimes.java:
collector/src/test/java/com/ning/arecibo/collector/persistent/TestDefaultTimelineDAO.java:
collector/src/test/java/com/ning/arecibo/collector/persistent/TestTimelineAggregator.java:
collector/src/test/java/com/ning/arecibo/collector/process/TestCollectorEventProcessor.java:
collector/src/test/java/com/ning/arecibo/collector/process/TestInMemoryCollectorEventProcessor.java:

    Replace use of TimelineChunkAndTimes* with TimelineChunk*.

    Conform to new TimelineChunk signature.

collector/src/main/resources/collector.sql:

    Delete table TimelineTimes.

    Add attributes not_valid and aggregation_level to table
    timeline_chunk, and modify indexes appropriately.

    Insert a test record that can be used by the health check.

collector/src/main/resources/com/ning/arecibo/collector/persistent/TimelineAggregatorDAO.sql.stg:

    Query the TimelineChunks to get aggregation candidates.

    Remove templates for TimelineTimes, and change names
    appropriately.

collector/src/test/java/com/ning/arecibo/collector/MockTimelineDAO.java:
util/src/main/java/com/ning/arecibo/util/timeline/DefaultTimelineDAO.java:

    Replace use of TimelineChunkAndTimes* with TimelineChunk*.

    Remove TimelineTimes methods

collector/src/test/java/com/ning/arecibo/collector/persistent/TimelineLoadGenerator.java:

    Remove references to TimelineTimes.

    Conform to new TimelineChunk constructor signature.

util/src/main/java/com/ning/arecibo/util/timeline/CSVSampleConsumer.java:
util/src/main/java/com/ning/arecibo/util/timeline/StartTimesMapper.java:
util/src/main/java/com/ning/arecibo/util/timeline/TimeRangeSampleProcessor.java:

    Conform to move of static methods to DateTimeUtils.

util/src/main/java/com/ning/arecibo/util/timeline/CachingTimelineDAO.java:
util/src/main/java/com/ning/arecibo/util/timeline/TimelineDAO.java:
util/src/main/java/com/ning/arecibo/util/timeline/persistent/TimelineDAOQueries.java:

    Remove TimelineTimes methods.

util/src/main/java/com/ning/arecibo/util/timeline/SampleCoder.java:

    Change scan() signature: now takes TimelineChunk and a
    SampleProcessor.

    Conform to new TimeCursor method signatures.

util/src/main/java/com/ning/arecibo/util/timeline/StartTimesBinder.java:

    Fix typo - - referred to TimelineTimesBinder.

util/src/main/java/com/ning/arecibo/util/timeline/TimeCursor.java:

    Changme TimeCursor() constructor to take a byte[] times instead of
    a TimelineTimes.

    Change the signature of consumeRepeat(), but it's still broken.

util/src/main/java/com/ning/arecibo/util/timeline/TimelineCacheManager.java:

    Remove stuff about TimelineTimes.

util/src/main/java/com/ning/arecibo/util/timeline/TimelineChunk.java:

    Remove property timelineTimesId and add properties notValid,
    aggregationLevel and times, and make corresponding constructor
    changes.

    Move the getSamplesAsCSV and friends here from
    TimelineChunkAndTimes.

util/src/main/java/com/ning/arecibo/util/timeline/TimelineChunkAccumulator.java:

    Conform to new TimelineChunk constructor(), and add overloading of
    extractTimelineChunkAndTimes that takes a List<DateTime>.

util/src/main/java/com/ning/arecibo/util/timeline/TimelineChunkBinder.java:

    Bind the new attributes of TimelineChunk.

util/src/main/java/com/ning/arecibo/util/timeline/TimelineChunkMapper.java:

    Parse out the new attributes of TimelineChunk.

util/src/main/java/com/ning/arecibo/util/timeline/TimelineCoder.java:

    In compressTimes(), flush the right stream.

    Provide new method compressDateTimes(List<DateTime>).

util/src/main/java/com/ning/arecibo/util/timeline/TimelineHostEventAccumulator.java:

    Conform to new extractTimelineChunkAndReset() signature.

util/src/main/java/com/ning/arecibo/util/timeline/TimelineOpcode.java:

    Don't use 0xff and 0xfe as opcodes - - it's less confusing to use
    0x7f and 0x7e.

util/src/main/resources/com/ning/arecibo/util/timeline/persistent/TimelineDAOQueries.sql.stg:

    Remove references to timeline_times.

util/src/test/java/com/ning/arecibo/util/timeline/TestSampleCoder.java:

    Remove TimelineTimes stuff.

util/src/test/java/com/ning/arecibo/util/timeline/TestSampleCompression.java:

    Create real times, because the new accumulator
    extractTimelineChunkAndReset() signature needs them.

util/src/test/java/com/ning/arecibo/util/timeline/TestTimelineChunkAccumulator.java:

    Conform to new scan() signature.

    Remove refs to TimelineTimes and *AndTimes* clases.

util/src/main/java/com/ning/arecibo/util/timeline/TimelineChunkAndTimesConsumer.java:
util/src/main/java/com/ning/arecibo/util/timeline/TimelineChunkAndTimesDecoded.java:
util/src/test/java/com/ning/arecibo/util/timeline/TestTimelineChunkAndTimesToJson.java:
util/src/main/java/com/ning/arecibo/util/timeline/TimelineChunksAndTimesViews.java:

    Renamed to remove the AndTimes.

util/src/main/java/com/ning/arecibo/util/timeline/TimelineChunkConsumer.java:
util/src/main/java/com/ning/arecibo/util/timeline/TimelineChunkDecoded.java:
util/src/main/java/com/ning/arecibo/util/timeline/TimelineChunksViews.java:
util/src/test/java/com/ning/arecibo/util/timeline/TestTimelineChunkToJson.java:

    Renamed units.

util/src/main/java/com/ning/arecibo/util/timeline/TimelineChunkAndTimes.java:
util/src/main/java/com/ning/arecibo/util/timeline/TimelineTimes.java:
util/src/main/java/com/ning/arecibo/util/timeline/TimelineTimesBinder.java:
util/src/main/java/com/ning/arecibo/util/timeline/TimelineTimesMapper.java:
util/src/test/java/com/ning/arecibo/util/timeline/TestTimelineTimes.java:

    Deleted

util/src/main/java/com/ning/arecibo/util/timeline/DateTimeUtils.java:

    New unit to hold static methods that convert to/from unix time.

util/src/main/java/com/ning/arecibo/util/timeline/TimesAndSamplesCoder.java:

    New unit to hold static methods that combine times and samples
    byte arrays.

util/src/main/java/com/ning/arecibo/util/timeline/TimeBytesAndSampleBytes.java:

    New unit to hold times and samples byte arrays.