Add a parent/child relationship to the run model.

This is to allow for spawning sweeps from a run and keeping a link between the
original run (parent) and the sweep runs (children).

Parents must have an older (lower) id than their children and the relationships
must be acyclic.
Add a method to find the root ancestor of a run.

This is so that we can find inputs and interactions that we need when the run is
a child of another run.
Add methods to create runs from a parent run.

The signatures of Run.new_from_run and Run.create_from_run match those of
ActiveRecord::Base.new and ActiveResource::Base.create, respectively, except
that they accept an extra required parameter which is the run from which the new
ones will be created.
Populate missing run inputs from its parent.

Now we can initialize a run from a parent and only pass in the inputs we want to
change.
Add Run#has_parent? method for convenience.
[TAV-366] Reuse parent run interaction replies.

If a run has a parent then it will re-use the parent interaction replies instead
of waiting for user input.
Merge branch 'rh/reuse-ints'

* rh/reuse-ints:
  [TAV-366] Reuse parent run interaction replies.
  Add Run#has_parent? method for convenience.
  Populate missing run inputs from its parent.
  Add methods to create runs from a parent run.
  Add a method to find the root ancestor of a run.
  Add a parent/child relationship to the run model.