Closes #62 Upon taking the lead, oracle verifies it can no longer connec...

...t to previous oracle
When an oracle looses leadership, it does not stop accepting connections.  So the new oracle may still be able to connect to the old oracle.  Looking at the code I am thinking it should do more than try to connect, it should try to allocate some timestamps until it gets an exception.  If the old oracle process is dead, then there will be an exception.  If the old oracle process is still running, then eventually the is leader check in getTimestamps() should cause the thrift call to fail. 

What do you think of the following?
```java

volatile boolean iAmLeader = false;

 @Override
  public synchronized long getTimestamps(String id, int num) throws TException {
     if(!iAmLeader) throw IllegalStateException();
  }
  public void takeLeaderShip(){
    // WARNING must never call third party code that eats interrupts!!!!
    try{
        synchronized (this) {
        // sanity check- make sure previous oracle is no longer listening for connections
          while (currentLeader != null) {
            if (started && !oldOracleThrowsException(currentLeader))
              wait(500);
            else
              break;
          }

          iAmLeader = true;

          //setup oracle state for answering timestamp request.... 
          //doing this after the boolean is set to true... request 
          //before the boolean is set to true will fail
      }
        //sleep until interrupted

    }finally{
      iAmLeader = false;
    }
}
```