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.