Closes #8 - Made garbage collection iterator determine oldest active snapshot.  

Pull request for #8 

Created TimestampTracker to keep track of timestamps in Zookeeper.  Modified GC iterator to get oldest active timstamp from Zookeeper. Created integration tests for TimestampTracker and GCIterator
may not want to call close here.  Might be better for everything that creates a transaction to call close.  For example I was looking at the Worker code.   In that code if there is an exception calling observer.process(), then it would never call commit.  Would probably be better if the worker code always closed the transaction, even if it did not commit.