Fixes #2278
When a builder attempts to begin or end a scheduling rule that doesn't
match the outer scope rule, the error message now includes:
- Builder name and label
- Builder class name
- Plugin ID
- Project name
- The conflicting rule
This makes it much easier to identify which builder is causing the
rule mismatch, especially in complex build scenarios with multiple
builders.
The enhancement catches IllegalArgumentException at the point where
beginRule() and endRule() are called in BuildManager.basicBuild() and
wraps it with detailed context before re-throwing.