Do not check for all variables in junctions

Junctions are loaded before all variables can loaded. So there should
not be errors for unused variables that are defined using undefined
variables.

Also this checks for undefined variables in the same time as looking
for cycles. This will allow to show more errors to the user when both
type of errors happen in the same time. This also simplify error
handling in `_variables.pyx`.
9 files changed