Only warn once per variable for not using "!global".

Previously this was tracked on the VariableNode itself, but that's
duplicated before the "warning has been emitted" flag was set.

Closes #1103