v2: round-trip <prog>-options: and hardeningDisable; fix android libsodium
Three changes to make the v2 builder honour two cabal.project / module-level settings that v1 already supported, then use them to fix the libsodium build on android cross targets. * modules/install-plan/configure-args.nix + modules/package-options.nix: Plumb plan.json's `--<prog>-option=VAL` entries (gcc / ld / hsc2hs / alex / happy / c2hs / cpphs / ghc-pkg / ...) through to a new per-package `programOptions` module option, grouped by program. v1 already consumes the same data via `configureFlags`; v2 had no path for this — `configure-options:` only works for `build-type: Configure` packages, so it can't round-trip arbitrary `--<prog>-option=` flags for Simple builds. * builder/comp-v2-builder.nix: emit a `package <pkg> <prog>-options:` line in the slice's cabal.project for each program with non-empty options, derived from the new `programOptions` option. cabal-install auto-generates a `<prog>-options:` field per program in its built-in `ProgramDb` (see `Distribution.Simple.Program.Db.programDbOptions`), so any `c2hs-options:` / `hsc2hs-options:` / etc. the user writes in cabal.project now reaches the program's invocation in slice builds. * builder/comp-v2-builder.nix + builder/build-cabal-slice.nix: Forward each slice's `component.hardeningDisable` through to the slice's mkDerivation so stdenv strips the listed hardening flags from `NIX_HARDENING_ENABLE` (e.g. `fortify` drops `-D_FORTIFY_SOURCE` for the slice's C-toolchain invocations). v2 was silently ignoring this haskell.nix module option. * test/cabal.project.android + test/exe-dlls/default.nix + test/exe-lib-dlls/default.nix + test/th-dlls/default.nix: New shared android-only cabal.project overlay that sets `package libsodium c2hs-options: --cppopts=-D_Null_unspecified=` so c2hs's C parser can preprocess past the Clang nullability annotation `_Null_unspecified` in the Android NDK's stdio.h. Three tests (exe-dlls / exe-lib-dlls / th-dlls) that depend on libsodium now conditionally include the overlay on isAndroid. v1 already had the equivalent via `packages.libsodium.configureFlags` in test/modules.nix and `hardeningDisable = ["fortify"]`; this cabal.project + module wiring makes the same fix reach v2. Verified `tests.th-dlls.build` on `ghc9141.aarch64-android-prebuilt`: libsodium builds cleanly on both v1 and v2. Pre-existing qemu segfault on the cached/built `iserv-proxy-interpreter` then prevents th-orphans from running TH splices — separate issue, documented in `memory/project_v2_aarch64_android_iserv.md`.