Convert `else if` to `elseif` in the lexer

Summary: Patterns like the following create deep AST tree and can
potentially overflow our parser's depth limits (See #2699).

  if (expr) {} else if (expr) {} else if (expr() {} else {}

  IfStatement
    IfBranchStatement
    IfStatement
      IfBranchStatement
        IfStatement
          IfBranchStatement
            ...etc...

By interpreting "else"{WHITESPACE}*"if" as T_ELSEIF we're
able to keep such chains flat.

  IfStatement
    IfBranchStatement
    IfBranchStatement
    IfBranchStatement
    ...etc...

Has the very minor side-effect of making token_get_all()
return T_ELSEIF rather than T_ELSE T_WHITESPACE T_IF as expected,
but that should be a matter of academic purity rather than
anything functional.  I look forward to regretting these words.

Closes #2699

Reviewed By: @paulbiss

Differential Revision: D1666431

Signature: t1:1666431:1415344521:9373b9a139c6ece1eff955742d91204ea7ee58bc