Don't overwrite the body if there are no changes.

Fixes issue #1 .
I don't understand how this snippet would handle all formatting changes.
In my eyes it's like this:
```
if sameSize { // same size, we need to compare ffile and body
  switch diff, err := bodyDiff(ffile); {
  case err != nil:
    fmt.Fprintf(os.Stderr, "failed to diff the body: ", err)
    fallthrough // Not fatal. Re-write the body anyway.
  case diff:
    // No need for a separate writeFile function.
    // It's not writing a file, it's writing the body and setting the address.
    // Just do them both here.
    if err := writeBody(win, ffile); err != nil {...}
    if err := showAddr(win, q0, q1); err != nil { ... }
    // cleanup and exit with status 0
  }
}
// The size differs (we know something changed without comparing), so we write the body.
if err := writeBody(win, ffile); err != nil {...}
if err := showAddr(win, q0, q1); err != nil { ... }
// cleanup and exit with status 0
```

This introduces the code duplication (writeBody, showAddr, cleanup and exit) I tried to remove with a function.