Add SharedState module

SharedState moves the state from an instance variable (different per
request, not useful) to a class variable on the class mixed-in-to.  This
allows the state to be shared by all requests, and thereby be useful.
Modify arguments

An instantiated (and configured) `failure_state` is now passed into this
class.
Add additional states, events, and methods

New state: `closed_initial`
The initial, closed state.  Does not have the `reset_failure_count`
call that the original `closed` state has

New event: `manual_reset`
Resets the state to `half_open` from any other state.  Called in
response to following the `enable` link in the UI.

New method: `trip_immediately`
Trips the circuit breaker and sets `failure_count` and
`last_failure_time` to values that will allow the breaker to remain in
an open state for the configured time.  Called in response to following
the `disable` link in the UI.
Clean up attribute methods and use useful keys

Some identifier for the class CircuitBreaker is mixed in to (`mixee`) is
passed into this class, to be used in the Redis keys.  This allows
storing failure data in Redis on a per-class basis, rather than all
classes using the same two keys.