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.
Also, because you don't define any behavior on these types, I don't think they should be types. Rather, prefer using the underlying data types, e.g.

```go
type containerLog struct {
    containerID    string
    nextListenerID uint32
    // ...
}
```