CURATOR-126: Fix race condition in CuratorFrameworkImpl.close()

Let me be more clear.  The way the loop is constructed:

```
    private void backgroundOperationsLoop()
    {
        while ( !Thread.interrupted() )
        { ... }
```
ALREADY eats the interrupted status.  Simply checking `Thread.interrupted()` consumes it.  If you want to consistently enforce a rule that you always re-interrupt threads (which is a good rule in general, although not necessary here) then you need an unconditional re-interrupt at the end of the method.

Do you want me to add that?

My point is that putting the interrupt only in the catch block is inconsistent.  It re-interrupts in the case where an InterruptedException gets throws, and fails to re-interrupt when the loop exits without exception.