FL-1221 feat: pure tenancy decision core (no logging, no HTTP deps)
- CheckBrandScope / CheckStoreScope / CheckMissingEntity are PURE: plain values in, ScopeCheck out — no I/O, no logging, no fiber
- ScopeCheck carries the decision PLUS the audit obligation (Event, Level, ready-made slog attrs): adapters emit the log line in one place; the SDK only decides and describes
- audit contract: EventTenancyDenied (WARN), EventSuperManagerBypass (INFO)
- User.IsSuperManager exported (nil-safe)
- reference adapter: bsm/internal/interfaces/http/middleware/tenancy.go
Closes FL-1221