intel_extreme: Add RC6 downclocking support

* Generation 6 (SandyBridge) and later support
  automatic downclocking of the GPU offering
  substantial battery use reductions.
* As we're playing with fire here, only use on
  mobile devices SandyBridge or later.
* This is testing stable on my SandyBridge laptop,
  however I need further confirmation of the
  functionality of this.
* Move clock gating into a function in the power.cpp
  file
Fix initializing fClockSettingFile.

Signed-off-by: Rene Gollent <anevilyak@gmail.com>
Add ReturnValueID base type.
Extend InstructionInfo for subroutines.

- InstructionInfo now also stores the destination address of subroutine
  call instructions.
- Adjust callers.
Extend Architecture to help retrieve return values.

- Architecture now has a new function to retrieve the location where
  a return value can be found. Added implementation for x86 and stub
  for x86-64.
Add helper functions for creating return value variables.
Initial implementation of _GetReturnValue().

- Look at the destination of the subroutine instruction and try to
  resolve it to a function. Currently only handles functions whose
  destination are within the same image.

- If found, look up debug info for the target function. If available,
  determine if it returns a value. If so, construct an appropriate
  placeholder variable and add it to the frame's variable list.
More improvements to return value handling.

- Thread now has a data member indicating if a subroutine was
  executed during the last set of steps.
- ThreadHandler now sets the aforementioned state appropriate during
  Step Over/Step Out.
- Architecture::CreateStackTrace() now takes a parameter indicating
  whether return value retrieval is desired (based on aforementioned
  thread value). Adjust callers accordingly.
- DwarfImageDebugInfo: If return value retrieval is requested, loop
  backwards from the current IP to find the call instruction.
Thread now also tracks the address of the last executed function.
Rework how return values are handled.

- ArchitectureX86 now hands off the work for GetInstructionInfo() to
  DisassemblerX86, since the latter has all the information we need
  to properly classify and evaluate instructions. Correspondingly a
  CpuState is passed down to it in order to perform address calculations
  for the instruction if it's a jump or call instruction. The latter's
  targets are then stored on the thread for later retrieval when
  constructing a stack trace. Adjust X86_64 accordingly for the
  signature changes. This also fixes a bug where Step Over would
  sometimes result in a Step Into instead due to the previous
  implementation of GetInstructionInfo() occasionally failing to
  classify call instructions correctly.

- Architecture::CreateStackTrace() now takes an argument specifying
  the address of the last executed function if applicable. This is used
  to decide who/where to decode a return value from. Adjust callers.

- DwarfImageDebugInfo::_CreateReturnValue() uses the above information
  in order to know directly who the caller it needs to look up a return
  value for is, rather than trying to walk backwards to find them.
  Type resolution is now also a bit more sophisticated due to various
  cases where the subprogram entry didn't directly contain the return
  type but referred to another DIE that did. Retrieving return value
  now appears to work properly in all cases except when position
  independent code is involved. The latter however will require
  resolving the appropriate function address in the PLT, which will
  need some additional work.
Re-arranged tabs

Pu the tabs back in the order it used to be. "Fonts" and "Colors"
are probably changed more often than "Look and feel".

Also re-arranged a few lines of code to reflect that order and sorted
the includes.