Adds dirty map management to the receiver side

Fixes #5.
Includes code from from #15 (which isn't merged at time of writing, but is getting close).

Reviewers may want to check [the updated README](https://github.com/HouseTrip/routemaster_client/blob/dirtymaps/README.md#filtering-receiver) before diving in the code.

NOTE: we may be getting to the point where some of this gem should be spun off into a separate `routemaster-receiver` gem.
Good point, maybe we could add a line below saying "`SweepJob` and `Listener` could be combined into one class. None blocker.