This abstracts TimelineCoder and TimeCursor into interfaces, and
creates TimelineCoderImpl and TimeCursorImpl that implement them.  It
also changes the API to always use DateTime instances to refer to
times, since other implementations of TimelineCoder and TimeCursor
might not use second resolution unix time.

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

    Renamed to TimelineCursor.java

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

    Change former static methods into an interface, and make all
    interface methods use DateTimes rather than ints.

util/src/main/java/com/ning/arecibo/util/timeline/times/TimelineCursorImpl.java:
util/src/main/java/com/ning/arecibo/util/timeline/times/TimelineCoderImpl.java:

    The implementations of the new interfaces, which used to be static
    methods.

collector/src/main/java/com/ning/arecibo/collector/guice/CollectorModule.java:

    Bind TimelineCoder.

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

    Add TimelineCoder constructor arg and data member, and use it
    rather than calling a static method to combine timelines.

collector/src/test/java/com/ning/arecibo/collector/TestEventCollectorServer.java:

    Conform to TimelineCursor API change to use DateTimes.

collector/src/test/java/com/ning/arecibo/collector/TestTimelineChunkAndTimes.java:

    Conform to TimelineCoder API change to use DateTimes.

collector/src/test/java/com/ning/arecibo/collector/TestTimelineHostEventAccumulator.java:
collector/src/test/java/com/ning/arecibo/collector/persistent/TestTimelineAggregator.java:
collector/src/test/java/com/ning/arecibo/collector/persistent/TestTimelineEventHandler.java:
collector/src/test/java/com/ning/arecibo/collector/persistent/TimelineLoadGenerator.java:
collector/src/test/java/com/ning/arecibo/collector/process/TestCollectorEventProcessor.java:
collector/src/test/java/com/ning/arecibo/collector/process/TestFileBackedBuffer.java:
collector/src/test/java/com/ning/arecibo/collector/process/TestInMemoryCollectorEventProcessor.java:
collector/src/test/java/com/ning/arecibo/collector/process/TestSamplesReplayer.java:
collector/src/test/java/com/ning/arecibo/collector/resources/TestHostDataResource.java:
util/src/main/java/com/ning/arecibo/util/timeline/chunks/TimelineChunkDecoded.java
util/src/main/java/com/ning/arecibo/util/timeline/samples/SampleCoder.java
util/src/main/java/com/ning/arecibo/util/timeline/times/TimeRangeSampleProcessor.java:
util/src/main/java/com/ning/arecibo/util/timeline/times/TimelineCoder.java:
util/src/test/java/com/ning/arecibo/util/timeline/chunks/TestTimelineChunkAccumulator.java:
util/src/test/java/com/ning/arecibo/util/timeline/chunks/TestTimelineChunkToJson.java:
util/src/test/java/com/ning/arecibo/util/timeline/samples/TestSampleCoder.java:
util/src/test/java/com/ning/arecibo/util/timeline/samples/TestSampleCompression.java:

    Conform to the new TimelineCoder/TimelineCursor APIs

util/src/main/java/com/ning/arecibo/util/timeline/samples/SampleProcessor.java:

    Conform to TimelineCursor name change.

util/src/test/java/com/ning/arecibo/util/timeline/times/TestTimelineCoder.java:

    Extensive changes to deal with DateTimes rather than int unix
    times in the TimelineCoder and TimelineCursor APIs.
This checkin makes the compression and decompression of sample
replacable, but turning SampleCoder into an interface.  Lots of files
got changed because formerly classes that used the coder used static
methods, and now they need to have access to an instance that
implements SampleCoder.

I still need to add the right factory class to select alternative
SampleCoder and TimelineCoder implementations.

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

    Morph into an interface that only has coding methods - - the
    sample accumulation part got moved to SampleAccumulator, and the
    coding part got moved toe SampleCoderImpl.

util/src/main/java/com/ning/arecibo/util/timeline/samples/SampleAccumulator.java:

    New unit containing the portions of the former SampleCoder that
    accumulate samples.

util/src/main/java/com/ning/arecibo/util/timeline/samples/SampleCoderImpl.java:

    New unit - - the implementation of new interface SampleCoder.

collector/src/main/java/com/ning/arecibo/collector/guice/CachingDefaultTimelineDAOProvider.java:
collector/src/main/java/com/ning/arecibo/collector/persistent/TimelineAggregator.java:
collector/src/main/java/com/ning/arecibo/collector/persistent/TimelineEventHandler.java:
collector/src/main/java/com/ning/arecibo/collector/persistent/TimelineHostEventAccumulator.java:
collector/src/main/java/com/ning/arecibo/collector/resources/HostDataResource.java:
util/src/main/java/com/ning/arecibo/util/timeline/chunks/TimelineChunk.java:
util/src/main/java/com/ning/arecibo/util/timeline/chunks/TimelineChunkAccumulator.java:
util/src/main/java/com/ning/arecibo/util/timeline/chunks/TimelineChunkDecoded.java:
util/src/main/java/com/ning/arecibo/util/timeline/chunks/TimelineChunkMapper.java:
util/src/main/java/com/ning/arecibo/util/timeline/persistent/DefaultTimelineDAO.java:

    Add SampleCoder data member and constructor arg, and pass it to
    other methods and constructors that need it.

collector/src/main/java/com/ning/arecibo/collector/guice/CollectorModule.java:

    Bind sampleCoder.

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

    Remove unneeded @RegisterMapper of TimelineChunkMapper.

collector/src/test/java/com/ning/arecibo/collector/TestTimelineChunkAndTimes.java:
collector/src/test/java/com/ning/arecibo/collector/TestTimelineHostEventAccumulator.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/persistent/TestTimelineEventHandler.java:
collector/src/test/java/com/ning/arecibo/collector/persistent/TimelineLoadGenerator.java:
collector/src/test/java/com/ning/arecibo/collector/process/TestCollectorEventProcessor.java:
collector/src/test/java/com/ning/arecibo/collector/process/TestFileBackedBuffer.java:
collector/src/test/java/com/ning/arecibo/collector/process/TestInMemoryCollectorEventProcessor.java:
collector/src/test/java/com/ning/arecibo/collector/process/TestSamplesReplayer.java:
collector/src/test/java/com/ning/arecibo/collector/resources/TestHostDataResource.java:
util/src/test/java/com/ning/arecibo/util/timeline/chunks/TestTimelineChunkAccumulator.java:
util/src/test/java/com/ning/arecibo/util/timeline/chunks/TestTimelineChunkToJson.java:
util/src/test/java/com/ning/arecibo/util/timeline/samples/TestSampleCoder.java:
util/src/test/java/com/ning/arecibo/util/timeline/samples/TestSampleCompression.java:

    Create and use a SampleCoderImpl instance rather than calling
    static methods on the original SampleCoder.

collector/src/test/java/com/ning/arecibo/collector/TestEventCollectorServer.java:

    Fix test bug - - the time needs to be rounded to the nearest second.

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

    Reflect the move of getDoubleValue() from SampleCoder to ScalarSample.

util/src/main/java/com/ning/arecibo/util/timeline/samples/ScalarSample.java:

    Move methods getDoubleValue() and sameSampleValue() from
    SampleCoder to here, since they are not coder-specific.