Migrate to newer dependencies
This change migrates bytehound to use newer dependencies wherever easily possible. As most dependencies were multiple major versions out of date, this required a bit of porting. Each dependency update (save the JS update - sorry about that) was done as a separate commit with associated changes necessary to get bytehound to build/run with that commit.
This is not expected to be applied as-is. Because there is no default rustfmt, they are rebased on top of the application of cargo fmt to the project to make it easier to see what changed against a standard formatted version.
While it has been tested, it was done to hopefully make life a little easier for the maintainer :)
Feel free to use, discard, or whatever is helpful!