Circuit Panels

* Adds a CircuitBreaker interface
* Adds a Circuit Panel (a map of string names to a CircuitBreaker)

We could take this a bit further:

* [ ] `BreakerTripped`/`BreakerReset` callbacks on a Panel that pass the circuit breaker name.
* [ ] Rename the package to `circuit`.  `circuit.Panel`, `circuit.Breaker`, `circuit.NewTimeoutBreaker()`

Note: includes #9 
It creates a panel out of a subset of the circuits in the calling panel.

```golang
p := NewPanel()
p.Add("a", cb1)
p.Add("b", cb2)
p.Add("1", cb2)

// c is a no-op breaker
letters := p.GetAll("a", "b", "c")
```