e-sink.el: cancel stray timer

If we kill the buffer that e-sink is outputting to prematurely, the
timer continues to run and constantly throws errors.  Fix this by
cancelling the timer if the buffer does not exist in
e-sink-insert-from-temp().
e-sink.el: guard e-sink-finish() against missing buffer

If we kill the buffer that e-sink is outputting to prematurely,
e-sink.pl exits with an ugly error:

  *ERROR*: No buffer named *e-sink*
  system call with parameters emacsclient --no-wait
  --eval (e-sink-finish "" ) failed:

  Inappropriate ioctl for device at /usr/bin/e-sink.pl line 47,
  <STDIN> line 483693.

We can prevent this and exit cleanly by guarding the body of
e-sink-finish() with a check to see if the buffer exists.  If it
doesn't, there's nothing to do: our previous patch makes sure that
e-sink-insert-from-temp() cancels the timer.
e-sink.el: prefer let-forms over setq

It's easier to read.
e-sink.el: cancel stray timer when not :e-sink-in-progress

e-sink-insert-from-temp() prints an error when no e-sink is in
progress.  Instead of doing this, just cancel the stray timer.
e-sink.el: remove useless progn