Add #with_progress to Enumerable

Added `with_progress` to Enumerable for a slightly more intriguing API. This is cool with something like https://github.com/rails/rails/pull/13938 however, that does a MySQL `count()` which we're not really fans of. I want to play around with the `Sharding` module in Shopify to try and find a nice way to use this API with that and then using `max(:id)` and `record.id` to indicate progress.

Organizing Progressrus for multiple shards is a little tricky. I'm thinking of grouping them together in the UI based on some prefix or suffix to the id or name while having a `Progressrus` object for each shard. Then show them in an accordion or something.

@jstorimer @byroot @kristianpd