Fix /python/servo code formatting.

(My editor screams at me for flake8 lint errors.)
Add a 'mach rust-root' command.
Have the Rust snapshot directory include the Rust version and hash.

That way, whenever rust-snapshot-hash changes, mach will look for
the Rust snapshot in a different directory and re-boostrap as needed.

However, older rust version will be left behind never cleaned up.
This is good for git-bisect, but not for disk space:
the current snapshot is 618 MB.

In the future, we may want `mach clean` or some other comment
to remove unused Rust snapshots.

CC #3388