Upgrade to latest Rust (s/~str/StrBuf/)

See https://github.com/mozilla/rust/pull/14310
Add sort option

And move options struct into its own module
Allow sorting by file extension
Actually, cache the calls to ext

They get computed often enough for this to be worthwhile, and I have plans for using the extension even if it's not what's being sorted by.