Fix tons of unused value errors

I'm not sure what changed, but unused value lints were popping up everwhere when I tried to build today.

This turns on the `if let` feature since it allows rewriting a lot of calls to `Option::map` that were only being used for their side effects into a clean form.  Cargo seems as good of a place as any to dogfood it.