Fix the use of lwz and stw w/ non-constant immediate values that may
exceed 16-bit signed immediate
  - Added 3 macroAssembler interfaces to deal w/ :
    LoadSignedImmediate, LoadFromBaseAndOffset, and StoreToBaseAndOffset
  - Added x-form (x-form of load-word)
  - Fixed an encoding bug w/ STWX and STWUX
added simulator support for LWZX and LWZUX
More overflow checking fixup.
Revert prior commit regarding overflow fixup. Something way wrong.
Operation on dererenced Address type gives wrong result on big-endian hardware.

This fixes one instance in FixedIndexedReferencesExtractor::MarkVisitedField, but
I suspect there may be other instances hidden elsewhere in the code.
Use Add() instead of addi() where appropriate
Minor bug fix and cleanup in simulator:
  -  removed opcodes whose simulator support are missing: SC, ADDICx, MULLI
  -  added sign-extension of imm in SUBFIC
  -  removed unused helper function
  -  refactoring code to use SIGN_EXT_IMM16() macro for sign extension
remove MULLI from simulator (not implemented in simulator and not used)
fix simulation-ppc build break
enable NEW_IMM_CHECK_CODE by default
Minor code cleanup:
  - remove addrmod1/2/3/4
  - guard implementation of MacroAssembler::Usat() w/ fMASM29 marker
replace the use of ARM PostIndex addressing mode in PPC instructions
using update-form instructions
SubStringStub: Arguments to compare backwards.
Fixes test RobustSubStringStub.
Fix BreakLocationIterator::SetDebugBreakAtReturn / SetDebugBreakAtSlot
revert back c8d4cab11cca8aecd40e93369a7b23d41d243e61
Initial pass at porting lithium-gap-resolver-ppc.cc
Change LoadFromBaseAndOffset(StoreToBaseAndOffset) to a cleaner
LoadWord (StoreWord) interface
Initial pass at porting lithium-ppc.cc
When offset used in lwx and stw is not a constant in v8 codes, the offset
may overflow the immediate field of d-form instr depending on its value
when the instruction is emitted. Replace such instances by
MacroAssembler::LoadWord and MacroAssembler::StoreWord that will generate
x-form if overflow happens.
use MemOperand::ra() and MemOperand::offset() instead of direct reference
of ra_ and offset_ because ::offset() has checking to ensure the MemOperand
is constructed as d-form addressing