Error out if `%{max-jobs}` is substituted in `Element.node_subst_member()`

Background

Mentioning %{max-jobs} directly in build commands causes the generated cache keys to be different depending on the host environment and any dynamic resolution of max-jobs, which is why it should always be used with an environment-nocache env var instead.

Had to fix this recently in gnome-build-meta

Task description

Make sure that Element.node_subst_member() raises an informative error if it ends up substituting the special, protected max-jobs variable.

  • Add the new LoadError and LoadErrorReason
  • Raise the error in the correct condition
  • Add a test case asserting we fail in the way we expect, if max-jobs is specified in build commands