Fixed bug that stop method can't be done when the file isn't exists

Just like the case of the follow case:
```
func TestStop(t *testing.T) {
	tail, err := TailFile("/no/such/file", Config{Follow: true, MustExist: false})
	if err != nil {
		t.Error("MustExist:false is violated")
	}
	if tail.Stop() != nil {
		t.Error("Should be stoped successfully")
	}
}
```
In this case, `(tail *Tail) tailFileSync()` always call `(tail *Tail) reopen()`until the log file appearing.
When calling `(tail *Tail) Stop()`, the `dead` channel in  [`(t *Tomb) Wait()`](http://bazaar.launchpad.net/~niemeyer/tomb/trunk/view/head:/tomb.go#L110)  waitting for a value arrived or closed, but nothing will happen. So, the `(tail *Tail) Stop()` method always wait, it never quit untill the  log file appearing.
But sometimes, I just want to quit and needn't to wait the log file appear, so I think that we can call the `
Done()` method instead of the `Kill(nil)` method in the `Stop()` method.