Eliminate unnecessary uses of self

If we want to send a message to self, we can always do that by just
writing the method name verbatim ("foo", not "self.foo"), except in
the special case where the method name ends in "=".
Delegate Url#request_uri and #to_s to the URI object
Remove unnecessary workflow_state setter

This is exactly what the default one already does.
Use #create! instead of #build in Url#set_mapping_url

This a) avoids separately instantiating and saving the new mapping,
and b) raises an exception on failure, which is consistent with the
use of raise and update_attributes! elsewhere in the method.
Eliminate magic number in Url#set_mapping_url

1. Get the value 301 from Rack::Utils rather than hardcoding it
2. Extract to a constant so that it's more obvious that we're doing this
3. Expose delegated Url#http_status and check it in a test to make sure I haven't broken anything
Use a .redirects scope on Mapping instead of providing an explicit http_status

This moves the responsibility to the right place, and affords a pleasant
way of adding more status codes in future.
Rename "workflow_state" column to just "state"

This name is a historical accident, so let's move to something
more neutral.
Rename "is_scrape" column to "for_scraping"

The getter predicate shouldn't start with "is", and #scrape? is too
vague, so #for_scraping? seems like a reasonable compromise.
Rename Url.scrapable scope to .for_scraping

These URLs aren't (just) the scrapable ones, they're the ones that
we're actually going to scrape. This name makes that clearer, and
avoids the conceptual collision with ContentType#scrapable?.
Rename Url.order_for_scrape scope to in_scraping_order

This is just a better name.
Rename scrapable_urls view to urls_for_scraping
Rename :scrapable parameter to :for_scraping
Extract Url#scrape_result_delegate