Add optional cpu state to Variable.

- Used to preserve the CPU state for variables representing return
  values, since they may potentially be retrieved from registers,
  and these might be overwritten later in the same statement.
Minor refactoring.

- Factor out a _HasExitedFrame() function.
- Reorder how/where return values are added a bit.
Handle return value CPU states.

- DwarfStackFrameDebugInfo::CreateReturnValue() now takes a cpu state
  parameter. This is attached to the associated Variable object.

- ResolveValueNodeJob() now checks if the value node child it's dealing
  with is that of a variable. If so it pulls that CpuState for the
  ValueLoader's purposes rather than the current state. This gets return
  values for multiple function calls in the same statement working.