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
commands should hold their children, as before. sometimes one command may be pointed at by multiple parents. and this should be fine.