The majority of this commit revolves around branching.  The X86 branching process relies on the EFLAGS register which in certain optimization circumstances can make the process more complicated.  This code brings the original X86IREmitter::visitBRCOND back as visitBRCONDBasic, the addition is X86IREmitter::visitBRCONDAdvanced that handles situations where the EFLAGS register is being more directly manipulated.  The Advanced version is not complete yet.