SI-6489 parsing in macros should provide proper positions

1. macro parsing doesn't use toolbox any more but calls parser directly

2. in order for this to work parser has to be refactored to limit
   usage of currentUnit and rewire it into parser's local unit
   method which might use currentUnit for some parsers but will
   user proper unit for UnitParser

3. similar change has to be done to make compilation unit's
   reporter overridable
refactor variable arity definitions

Transform current arrays of symbols into function-like objects
that return NoSymbol at all places where corresponding arity isn't
available.