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.
Now that we have distinct channels per request-type, we can simplify even further and remove the intermediate type definitions.

```go
type containerLog struct {
 	entries       *RingBuffer
 	notifications map[chan string]struct{}
 
 	addc    chan string
 	lastc   chan logLast // <-- only this type needs to stay
 	notifyc chan chan string
 	stopc   chan chan string
 	quitc   chan struct{}
 }
```