Logging api

Reviewers:  @bernerdschaefer, @peterbourgon 

First pass at the internals of the logging API.  This is two layers thick.  There is a RingBuffer for log messages, and on top of this is a data structure that implements storage for and operations for each container.  (The RingBuffer probably should have been a separate submit.)

The next piece to be worked on will be the HTTP logging interface.
```go
var (
  cl      = NewContainerLog(3)
  logSink = make(chan string)
)

cl.Notify(logSink)
cl.AddLogLine("m1")
ExpectNoMessage(t, logSink)
```

- group setup vars
- `make(chan string)` is an unbuffered channel, no need for comment
- the test wasn't testing anything, since no log lines were added