FLUME-666: TailSource.close should block until subthread is closed.

Review Request #1829 - Created June 18, 2011 and submitted

Jonathan Hsieh
arvind, esammer
Issue 666. Hopefully not too evil.

There were several changes having to do with where InterruptedExceptions that were wrapped in IOExceptions that were converted to just propagate the InterruptedExption.  This was one case that was missed.  

The problem here happens when we try to shutdown a logical node via Interrupt.  If we were blocked in tail source (waiting for more data from tailThread), InterruptedExceptions would get converted to IOException.  An later call to close will try set some flags but didn't always shutdown the tailingThread.  This enforces a blocking behavior and injects interrupt if the tailthread doesn't stop in a reasonable amount of time.
Next test would fail prior to patch, passes now.  All tail related tests pass (big set running currnetly)
  1. I will commit this in 48 hours unless I hear anything (sitting 7+ days now)