Track the contents of hits files on import

* Doesn't do anything with this tracking info yet
* Uses absolute filenames, which assumes the place from
  which the hits are imported will never change, at the cost
  of having to remove all tracking info to effect a re-import
  of everything. No means is given to do this.
Add ImportedHitsFile#same_on_disk?

* Let the imported file check itself for difference
Allow a skippable job in ConsoleJobWrapper

* Use as start 'message' do |job|
* job.skip! will print the "skipped" message
* Returns true to enable "job.skip! and return"
Skip import of hits TSVs we have seen

* Keep track of what we've seen by using ImportedHitsFile to hash contents
* Don't reprocess things whose hashed contents haven't changed
Allow ConsoleJobWrapper to pass a return value

* Is the same value as the return value of the block to which it
  yields
Print number of files imported vs skipped/unchanged.

* In Transition::Import::Hits.from_redirector_mask!
Don't do expensive operations when nothing changed

* Don't refresh daily hit totals
* Don't refresh hits/mappings relations
Fix intermittently-failing hits import spec

* before :all happens once
* it doesn't matter how many nested contexts you have
* for the case where we were nesting before :all, remove
  and go to a simple before(:each). We can't use before(:each)
  for *everything* in this spec, because it triples the time to
  execute (and these are already not quick). But we can and should
  use it for any case where we might have been tempted to nest
  before :all's
* Don't cross the streams!
Merge pull request #381 from alphagov/track-imported-hits

Track imported hits