Use shared examples for answer module behavior.
add is_dirty field, and related methods to answer models and tests.
Comments to explain include a bit.
Lots of pending unit tests for Run changes
Stubs and WIP methods for async Run => Portal updating
dirty-bit management for runs
Add Delayed::Job for handling sending student data to the portal.
WIP on run methods and tests
Added a few tests to run_spec, add "#abort_job_and_requeue" to run.rb
Answer / answer.rb rename "#send_to_portal" ➙  "#queue_for_portal"
after_update :send_to_portal ➙ after_update :queue_for_portal rename.
Run#queue_for_portal expects single answer. (not array)
Revert "after_update :send_to_portal ➙ after_update :queue_for_portal rename."

This reverts commit 50225f6ecfdab1dc5bde736319845c7d0329fee4.
change mock expectations :send_to_portal ➙ :queue_for_portal
Run#queue_for_portal argument description singular answer.
Merge branch 'background-answers'