Introduced specialized exception classes

These classes compute the node location in the source file responsible for the exception and include it in the exception message.

The new classes are:
- AutoRefactorException.java: base exception class
- IllegalArgumentException.java: replacement for java.lang.IllegalArgumentException
- IllegalStateException.java: replacement for java.lang.IllegalStateException
Used PrimitiveType.toCode() to remove enumeration