feat(governor): rate limit by project

This patch adds support to eom:governor for rate limiting at the
tenant level.

This is accomplished by adding a new configuration option,
`project_rates_file`. This points to a JSON file that is identical to
the format used for `rates_file`, but also requires the 'project'
field to be present.

Some refactoring was undertaken to make this change easier to
test. Namely:

- applies_to is no longer a method of Rate
- the rate matching logic was pulled into a function rate_matches