Implement tag filtering with limits

Closes #50.

This adds a `TagCounter` that counts the tags associated with a test step and
the location of the test step.

`TagLimits` can be constructed from a list of filter expressions then used to
enforce the limits defined in the filter expressiont by passing a `TagCounter`
to `TagLimits#enforce`.

A `TagExcess` will be raised if any breaches of the limts are found.
Move `TagFilter` to own file
Make the construction of `TagLimits` from filter expressions clearer.
Handle multiple tags with limits.
Rename `TagCounter` to `TestCases`
Remove bare return in reduce block.

Used `each_with_object` to keep the `[]=` semantics.
Merge pull request #51 from cucumber/50-tag-limits

Implement tag filtering with limits