move rust-crypto to deps/
md5sum: remove Makefile
uutils: add md5sum
Merge pull request #286 from ebfe/uutils

uutils: add md5sum
Fix build dependencies in the Makefile
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
added tab analysis info to WordInfo

we will handle tabs correctly, by computing the tabstops *while*
linebreaking rather than before like other versions of fmt.
(If the other behavior is desired, just expand before applying fmt)
proper tab handling

We expand tabs correctly now, computing the length of a word about to be
output based on its position on the line. This is in contrast to other
versions of fmt, which expand prior to line breaking; in some cases,
their method will give different (and probably worse) results than ours.