truncate: make better use of UResult
truncate: make better use of UResult

Replace some uses of `crash!()` and move `UError` handling down into
the `truncate()` function. This does not change the behavior of the
program, just organizes the code to facilitate introducing code to
handle other types of errors in the future.

uutils/coreutils,uutils/coreutils,uutils/coreutils