cleaner prefix handling ; cleanup ; prep for K-P

indent_str and pfxind_str are combined along with
prefix_str when Paragraph is created, getting rid
of a couple string allocations at the cost of
slightly more memory use.

displayed_length is used to calculated prefix_len
in fmt.rs now

handle linebreaking in a nicer way inside of
linebreak.rs; inner loop now immediately kicks
Paragraph into break_lines, which will eventually
dispatch either to K-P or break_simple function

Help function no longer uses linebreak; no sense
in doing this since we know where to break it
statically

use ::util::libc in silent_unwrap macro and remove
extern crate libc

create data structure for K-P implementation
fixed tab behavior in -u

In uniform mode, replace '\t' after the indent with "  " (two spaces)
to force sentence breaks (double spacing) at tabs on the output.

Need to decide how to handle tab stops in non-uniform mode. Best way
seems to be to figure out tabulator alignment after placing the word
to determine the line's length, assuming TABWIDTH. That's different
than GNU fmt, which expands tabs *before* line breaking, which isn't
quite right, I think: after breaking, the number of spaces to the
tabstop might be different than it was before breaking. Hmmmm.
lines blank save for prefix act as par separators
tidy up the breaking by passing arg struct pointer
overhaul word splitting apparatus

word splitting now splits "<whitespace><word>". This is neater because
line endings don't end up with extra whitespace, but it requires us to
pass more information to the word splitting function.

Seems to be a performance regression compared to the old version, at
least for the moment.

Another possibility is to allow trailing whitespace and write my own
BufferedWriter that culls it before writing to stdout. This will
probably be faster because we won't have to allocate a bunch of
WordInfo structs.
pass WordInfo by ref