store last batch for data fixup

refs: CNVS-13987

Added a way to store the last batch that was ran.  Seperated out
the batch processor and the actual cleaner methods.  This will
allow us to add it to event stream to fix records as they are
queried if we choose.  This also moved the temporary mapping and last
batch tables to the migration.  g/38429 removes the tables.

Test Plan:
  - Same as g/37956 and g/37605
  - Migration should not fail if mapping table already exists.
  - With a grade change try deleting the submission then running the
    fixup.

Change-Id: Ibce843c22b72885f7e2510d85b482c39f513996b
Reviewed-on: https://gerrit.instructure.com/38407
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nick Cloward <ncloward@instructure.com>