Add a `search` command to cargo

This will currently call out to the registry service. In the future it may be sensible to add package descriptions to the git index so that search can be done offline.

Closes https://github.com/rust-lang/cargo/issues/925.