Resilient watches

Got some help in #coreos to find out what to do about 401 errors. Turns out the answer is to restart the watch with a fresh Get. That ensures metafora will never miss events.

The diff looks like an absolute mess. Basically all I did was put *another* for loop around the initial Get when we start watching, and have 401s continue that outer loop.


bleh
This whole error thing I think would look cleaner with embedding:

    type FatalError struct {
	    error
    }

    func (e *FatalError) Fatal() bool { return true }

    func main() {
	    e := &FatalError{errors.New("some error")}
	    fmt.Printf("error: %v\n", e)
	    fmt.Printf("error: is fatal: %v\n", e.Fatal())
    }