Add function to test that timeout happens with empty fallback
Add test for timeout of fallback function
Format comments
Abort if timeout is hit and no fallback is defined
Minor changes to documentation and test
Remove unneeded test
Short-circuit if GetCircuit fails

Currently if GetCircuit fails we return err which tells the parent
process to continue, but we still attempt to run the function but ignore
its output.
Fix incorrect return
Revert "Format comments"

This reverts commit 4aa8a5aeed6979bf666854febacbbc1427453e00.

At Keith's request
Fix race condition in TestMaxConcurrent

Because the exact order that the three go routines get spawned and run
in is undeterministic the test could fail if one of the first two
commands ran after the third.

This change makes it so all three of the threads run have the fallback
that correctly checks if test passed or failed.
Return the original error if fallback == nil

This is a more general solution that fixes a greater number of cases.

Previously we would ignore any error from the main program if the
fallback was nil.
Merge pull request #6 from tarrant/fix_timeout

Fix timeout if nil fallback