Refactor Stoplight::Light

Notable changes:

-   Made #allowed_errors a simple attr_reader. The instance variable is
    assigned in the constructor now.

-   Added #red? predicate methods.

-   Added helper methods on the instance that just call the class
    methods (like #green? -> .green?).

-   Renamed #failure_threshold to #threshold.

-   Convert attributes on assignment to the correct type (#to_a,
    #to_proc, #to_i, etc.).
Clean up Stoplight::Failure
Remove unnecessary specs
Move Stoplight::Light class functions into Stoplight module
Forward data store methods from Stoplight module to data store
Rewrite Failure specs
Write Stoplight specs
Define module functions in class block
Remove attribute readers from failure class
Rewrite Stoplight::Light specs
Create specs for data stores
Rename "failure threshold" to just "threshold"
Implement new attempts methods