Improvements to invert equals refactoring

Now also invert equals with enum literals.
Fixed a bug when doing Object.equals() with an infix expression that can statically be evaluated to a constant.
Fixed a bug with enum types in remove unneeded this expression refactoring

Worked with AbstractTypeDeclaration instead of TypeDeclaration.
Issue #51 New refactoring - move assignment from if statement condition to before

NoAssignmentInIfConditionRefactoring.java: ADDED with tests

ASTHelper.java:
In isSameVariable(Expression, Expression), did a big code refactoring to switch on node types.
Added areVariableBindingsEqual().
Removed isSameVariable(SimpleName, SimpleName), superseded by isSameVariable(Expression, Expression).
Removed getParent(ASTNode).
Added getParentIgnoring().