Lots of little tweaks to improve error messages

Big change to error messages themselves by removing single quotes for non input text stuff.  Made cannot_find_tokens_file more specific (split it). Added offending token information to a lot of the messages.  It now only prints the file name and not the full path to the file in error messages. Re-factored the ANTLRMessage hierarchy to share fields. Getting the offending token required number of methods to take different arguments. removed the default ST listener in the error manager as it is apparently unused.  Cannot find imported grammar is now a grammar error not a tool error.
Rather than pass in a new parameter, it seems like it would be easier to create a static method like the following:

```java
protected static Token getStartTokenOfFirstRule(Collection<? extends Collection<Rule>> cycles) {
    if (cycles == null) {
        return null;
    }

    for (Collection<Rule> collection : cycles) {
        if (collection == null) {
            return null;
        }

        for (Rule rule : collection) {
            if (rule.ast != null) {
                return rule.ast.getToken();
            }
        }
    }
}
```

You could then pass `getStartTokenOfFirstRule(cycles)` to the super constructor instead of `startTokenOfFirstRuleInCycle`.