Migrate to cobra CLI system

Refactored the CLI commands to use [cobra](https://github.com/spf13/cobra). Nothing outside of the `main` package (the CLI entry point/commands) is changed by this PR.

Addresses #111

* Now subcommands automatically get a nice help command when running `ipfs help <cmd>`
* Both long and short flags can be used, e.g. `ipfs add -r` or `ipfs add --recursive`
* Flags can now be defined as either persistent or local. For example the `--config` flag is persistent and can be accessed by any subcommand
how does cobra return errors? it just prints them out itself??? (arghhh).