Added 'pin ls' Command

This PR adds a `ipfs pin ls` command, where users can view a list of what is being pinned. It only shows direct pins (keys that have been added with `ipfs pin add`). Maybe we want it to show the indirect/recursive pins as well?
How about this: 

The commands library could have a set of special options which you can use, i.e. `cmds.OptionRecursivePath`, which the command library knows to handle specially. (This could be the same for the encoding option.) So, instead of being present everywhere, `-r` is only there when you ask for it. (encoding should still be everywhere)

e.g. as a user:

```Go
var cmdAdd = &cmds.Command{
  Options: []cmds.Option{
    cmds.OptionRecursivePath,
    ...
  },
}

var cmdRefs = &cmds.Command{
  Options: []cmds.Option{
    cmds.StringOption("r", "recursive", ...),
    ...
  },
}
```