Add list command + test + test utils.

List command with test utilities.  Does the same thing as in https://github.com/Shopify/brigade/pull/1 only now:
* with tests
* as a package

Coverage is:
```bash
$ go test ./... -cover
ok  	github.com/Shopify/brigade/cmd/list	1.288s	coverage: 93.8% of statements
ok  	github.com/Shopify/brigade/s3mock	0.158s	coverage: 74.5% of statements
?   	github.com/Shopify/brigade/s3util	[no test files]
```

It's now a package because 4 upcoming PRs introduce other commands, the last one joining them in a `main` package.

r: @boourns, @bouk, @camilo
cc: @snormore, @benbjohnson, @fbogsany 
Is:

```go
func (s *MySlice) Pop() {
   *s = (*s)[:len(*s)-1]
}
```

really worse than:

```go
func (s *MySlice) Pop() {
   s.stack = s.stack[:len(s.stack)-1]
}
```

?

"Pointers considered harmful"?