Use `Path` instead of `String` in the various `Args` structs.

(It was `String` before because Docopt stupidly required that
`Args` derive `Show`, and `Path` does not derive `Show`.)
Revert "Use `Path` instead of `String` in the various `Args` structs."

This reverts commit 70b9bba86bd166c26af3b3e459b4741937f9ca3e.

(Docopt can't handle decoding in `Path`, which is super unfortunate.)
Add a random sampling command.

Also, add min_length and max_length statistics + tests.

Fix a couple of bugs and write some documentation.

Also updates some deps.
0.4.4