This breaks Immediate/Displacement into distinct types, instead of typedefs to the same type. Also changes BasicBlockAssembler-related Immediate/Displacement/Operand to factory functions, instead of being types.
Fix fallout and slips that have resulted from the API sloppiness.
The final step of this refactoring will be to drop the AssemblerBase::XXXImpl types in favor of AssemblerBase::XXX.

R=chrisha@chromium.org

Review URL: https://codereview.appspot.com/152520044