* Duplicated package names are skipped.
* A package name can be a simple base name like 'syn',
or with version number like 'syn-1.0.5'.
Test: get_rust_pkg.py -h
Test: get_rust_pkg.py pkg1 pkg2 pkg3
Test: get_rust_pkg.py -o tmp -v pkg1 pkg2 pkg1
Change-Id: I5757f20c9a7cb244dc4b06113e28fcf4585c0703
* crates.io keeps yanked packages with the "yanked" attribute.
For example, log-0.4.9 and log-0.4.10 were yanked so
"get_rust_pkg log" should skip them.
* Compare version numbers before the publish id number.
For example, lazy_static-1.1.1 was published after lazy_static-1.4.0,
but "get_rust_pkg lazy_static" should fetch 1.4.0.
Test: get_rust_pkg.py -v log # get log.0.4.8
Test: get_rust_pkg.py -v log-0.4.10 # get log.0.4.10
Test: get_rust_pkg.py -v lazy_static # get lazy_static-1.4.0
Change-Id: Id005a91b75c0885285a76136bd6de19d0dafa5c1