Command Interface

This isn't ready for merge yet, PRing for code review/comments.
btw, we need to be able to pass inputs like an `io.Reader`, for example:

```sh
ipfs mount &
echo "beep boop" | ipfs block put
cd foo/bar/baz && ipfs add -r .
```

the non-deamon processes should be doing the reading from stdin/files, and passing `io.Readers` across the commands interface.