Move to thiserror over failure, as it's much more popular in the community, and has proper maintenance, support, and all around a better base to build off of. I was hesitant in the past for breaking changes, but since we're making breaking changes for v3/v4 anyway this is fine.
Start linting with clippy to catch a lot of bad patterns we had.
Update formatting rules, my editor has had some regressions in the past where with my screenreader it reads out every space, tabs prevent this from happening ever, and local editors can be configured for display.
Test Plan (required)
All tests, along with the new clippy ci lint rule should continue to pass.
Change-Id: fd605213d2008a85be46aeca9776a404caf5b33f
Motivation (required)
Test Plan (required)