Basic semantic sorting of ImportBatchRows

Where there are multiple rows for an old URL, especially after canonicalization,
this will enable us to choose the "best" row from a CSV of mappings by sorting
them.
Refactor tests for line length
Earlier redirects trump later ones

To do this, we had to add line_numbers so that an ImportBatchRow can tell if it
came before another.
Raise an error if comparing ImportBatchRows w/ different paths

You shouldn't be comparing rows for different paths. We had to change the specs
to comply with this as we had been breaking that rule.