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.
You can embed the mutex, so you don't have to refer to it explicitly.

```go
type RingBuffer struct {
    sync.Mutex
    elements *ring.Ring
    length   int
}
```

Then, later,

```go
func (b *RingBuffer) Insert(s string) {
    b.Lock()
    defer b.Unlock()
    // ...
}
```