implemented YodaConditions fixer

See #598. 

I know the code is missing comments, but I wanted feedback on the code first.

Modus operandi:

The documentation on operator precedence ([here][precedense_doc]) shows PHP has two different levels of comparison:
- `<`, `<=`, `>`, `>=`
- `==`, `!=`, `===`, `!==`, `<>`
The latter of the two has a lower precedence.

The fixer does the following for both kinds of comparison, with the higher precedence coming first:
- iterate backwards over the tokens until a comparison is found
  - find the left-hand side and right-hand side of the comparison
  - run the entire process over both left-hand and right-hand sides
  - if the left-hand isn't a "simple" expression and the right-hand is, switch sides
  - skip all tokens that were part of this comparison

It looks for the left-hand and right-hand sides by going backward/forward starting at the comparison itself, using:
- define `$level` as the level of parentheses the current token is in, with the comparison token being at `0`
- if `$level` is below zero, we've found the end
- if `$level` isn't zero, we haven't found the end
- if the current token has a lower precedence, we've found the end
- if  the current token is a `,` or `;`, we've found the end
- if the current token is a keyword like `return`, `case`, `throw`, `goto`, we've found the end

Deciding whether or not a side is "simple" is currently implemented as checking whether the side is an integer (`T_LNUMBER`), a floating point number (`T_DNUMBER`), a string( `T_CONSTANT_ENCAPSED_STRING`) or any keyword (`T_STRING`). 

[precedense_doc]: http://php.net/manual/en/language.operators.precedence.php
@sstok The indices are unique (a token cannot be T_IS_EQUALS and T_IS_IDENTICAL at the same time) so `array_replace()` does work.

@keradus Nope, the recursion is still needed :wink: 
The problem is that the lhs of the comparison can contain a comparison that has to be fixed. If the lhs and rhs are swapped, the index of that comparison becomes invalid. That's why the recursion is used. This also means that the next iteration of the loop will have an invalid index, because that's the index of the comarison in the lhs, which got swapped with the rhs.