cluster: add Storage.Remove
storage: implement redisStorage.Remove
storage: include Remove calls in the "integration" tests
storage: fix bug in Retrieve when container does not exist

Before this change:

--- FAIL: TestRedisNoAuthentication (1.01 seconds)
panic: interface conversion: interface is nil, not []uint8 [recovered]
	panic: interface conversion: interface is nil, not []uint8

goroutine 11 [running]:
testing.func·005()
	/Users/f/lib/go/src/pkg/testing/testing.go:355 +0xda
github.com/globocom/docker-cluster/storage.(*redisStorage).Retrieve(0xc210000598, 0x2ecc90, 0x8, 0x0, 0x0, ...)
	/Users/f/gocode/src/github.com/globocom/docker-cluster/storage/redis.go:35 +0x212
github.com/globocom/docker-cluster/storage.TestRedisNoAuthentication(0xc21003a480)
	/Users/f/gocode/src/github.com/globocom/docker-cluster/storage/redis_test.go:143 +0x1b6
testing.tRunner(0xc21003a480, 0x5821d0)
	/Users/f/lib/go/src/pkg/testing/testing.go:360 +0x8e
created by testing.RunTests
	/Users/f/lib/go/src/pkg/testing/testing.go:440 +0x88e

goroutine 1 [chan receive]:
testing.RunTests(0x35aea0, 0x582140, 0xa, 0xa, 0x1)
	/Users/f/lib/go/src/pkg/testing/testing.go:441 +0x8b1
testing.Main(0x35aea0, 0x582140, 0xa, 0xa, 0x586940, ...)
	/Users/f/lib/go/src/pkg/testing/testing.go:372 +0x8c
main.main()
	github.com/globocom/docker-cluster/storage/_test/_testmain.go:65 +0x9c

goroutine 3 [syscall]:
os/signal.loop()
	/Users/f/lib/go/src/pkg/os/signal/signal_unix.go:21 +0x1e
created by os/signal.init·1
	/Users/f/lib/go/src/pkg/os/signal/signal_unix.go:27 +0x31
exit status 2
FAIL	github.com/globocom/docker-cluster/storage	1.255s
storage: add edge case test