ipfs config command with git-style option value getters and setters

Hi there! i wanted to add something small and simple and attempted to make the "ipfs config" command. The idea was to follow git's command line syntax style. 

So now we can get specific config's key values with:
```
        $ipfs config datastore.path
        ~/.go-ipfs/datastore
```
And assign new values to the keys with:
```
        $ipfs config datastore.path ~/.go-ipfs/datastore
```
Plus, in the style similar to:
``` 
       git config --global --edit
```
we can open the config file in the default editor(as taken from $EDITOR environment variable):
``` 
       ipfs config edit
```
One thing to address in the future is that the config keys here are simply read (or assigned) from config's JSON, and just ignore the actual go-ipfs/config structures.
The other one is to add support for custom config file's path. 

I would very much appreciate any feedback. Thanks!
The more idiomatic go way of doing this would be to just open the file `os.Open` and then use `json.NewDecoder` to do the decoding.

    fi,err := os.Open(filename)
    if err != nil {//whatever}
    dec := json.NewDecoder(fi)
    var cfg map[string]interface{}
    err := dec.Decode(&cfg)
    if err != nil {//whatever}

(obviously written cleaner than my chicken scratch)