Run integration specs in a temporary home dir.

This wraps the contents of the `#run_interactive` method in a call to
`#with_a_temporary_home_directory`.

In order to make this change simpler, we refactored the `#run_interactive`
method first, breaking it up into smaller parts.