push handling of _unaryminus into compile.middle

since then ExpressionParser doesn't need to know about prim._minus.
(it now recognizes it as special not by an instanceof check, but by
seeing that its syntax is infix and minimumOption is set, to indicate
that the left input is optional)

part of my project of reducing dependencies of ExpressionParser
on engine packages like prim and nvm