Refactor failure indication onto Warning instead of Review

* To make it easier to perform different operations against
  failures vs. warnings, move the failure status onto individual
  FoodCritic::Warning objects

* Added #failures method to Review which will return a list of
  warnings that are failed

* Refactored gherkin tag matching into Rule
Merge remote-tracking branch 'jamesdburgess/failures-on-warnings'