Issue #30 New refactoring - Reorder modifiers

Also remove public abstract modifiers from annotations members.

RemoveUselessModifiersRefactoring.java:
Extracted method removePublicAbstractModifiers().
Refactored code to remove else statements.
Fixed bugs where reverting conditions result in code that does not compile or even broken behaviour in refactored code.

ASTHelper.java:
Enhanced negate() method to:
- Remove a NOT for a PrefixExpression
	- In this case, further remove any parentheses
- Added the possibility to copy or not copy the actual subtree used

SimplifyExpressionRefactoring.java:
Used ASTHelper.negate() + removed negate() method.

SimplifyExpressionSample.java:
Removed a useless space.

BooleanRefactoring.java:
Used ASTHelper.negate() to fix bugs where reverted conditions result in broken code behaviour or even code that does not compile.
Refactored code to remove else statements.
Extracted method copySubtree() to improve code readability.

BooleanSample.java:
Added tests cases that cover ASTHelper.negate()