plainbox:session:resume: fix 1388747

This patch makes SessionResumeHelper1's (and via inheritance 2, 3, and 4)
_process_job() method silently ignore missing test results. See below for a
discussion on why this is done.

This bug is a follow up to fixing 1388055. There we've changed the session
representation to include the checksum of each job that is in the run list.
This means that a simple session, with one desired job and no results would be
saved like this:

- job checksums: {a: ...}
- desired job list: [a]
- run_list: (computed, not stored): [a]
- results: []  # empty

This would cause SessionResumeHelper._process_job() to crash on a missing key, similar to this:

        plainbox.impl.session.resume.CorruptedSessionError: Missing value for
        key '2013.com.canonical.certification::power-management/hibernate-30-cycle-log-attach'

The reason for this crash is simple. The _process_job() method has two
responsibilities:
1) To check that the job has not changed by comparing the current checksum to
   the stored checksum. This was working correctly here
2) To restore the last result of that job. This was failing.

The second step fails since we no longer store "hollow" results (the implicit
result that each job is getting in a session) but we do store the checksum of
any job that we intend to run which causes _process_job() to try to resume its
results.

The solution is to not to assume results are present and only load and validate
them if they are.

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
"automatic merge of lp:~zkrynicki/checkbox/fix-1388747/ by tarmac [r=sylvain-pineau][bug=1388747][author=zkrynicki]"