refactor execution to simplify usage

we shouldn't try and manage shuffling the output of the command back to the caller. expect the developer to create a chan themselves, and then write to it when they want to give back the results of their command
possible new methods
document new usage style
pass run error into fallback function.  merge errors if both run and fallback fail.
put down some ideas on executor/circuit fetching

not a working implementation
filling out the execution logic with circuits and throttling.
syntax fixes
introduce failing test
refactor tests to use Go method
golint
Merge commit '56b23310dc892050c8de94c0df8e701c1efa6c42' into streamline-api
health refactor. update health via Go method.

make health updates a simple bool chan.
infer time when channel is read.
remove mutex from health since all updates are currently happening in Monitor
add cleanup of old health buckets.
make circuit open/closed an explicit state to avoid recalculating health for each execution
remove dead code
test for circuit toggling into closed state
Merge pull request #2 from afex/streamline-api

more go-friendly api