Don't emit Array::Presence mutation for irrelevant arguments

Arguments can be marked as irrelevant by prefixing
their name with an underscore, or by using only an
underscore as the name. Previously, mutations to
such arguments would be skipped within the :arg
handler. This approach didn't cover mutations emitted
by Array::Presence, which removes the :arg node from
its :args parent.

This change moves this check to the :args handler.
The :arg handler, on the other hand, no longer knows
about the underscore pattern. That's not a problem
since :arg nodes never occur without a parent :args
node.