Add login command

One step at a time. :)

This PR adds a `login` command that stores the SH's key in the `netrc` file.

Also, I've improved the management and dependency control of commands so we don't need to repeat common code.

Finally, a function to read the key from several sources was added. This functions should be useful in other commands (I'm currently using it on the `log` command).
this version of getting the scrapy key doesn't use the `scrapy.cfg` in the project, unlike the method for getting it iwht the deploy command which does (`get_closest_scrapy`). I think this can become confusing in the future for some (not so) edge cases.

Rather than copying non-trivial code  code from `closest_scrapy_cfg()` to `shub` project or adding the (unnecesary, big) scrapy dependency to this project, I think we should stick to ignore scrapy.cfg auth completely when it comes to `shub login` and `shub logout` commands.

Thoughts?