D lang compilers have an option -release (or similar) which turns off
asserts, contracts, and other runtime type checking. This patch wires
that up to the b_ndebug flag.
Fixes#7082
project() now takes an optional keyword argument `subproject_dir` which specifies
the directory in which Meson will look for subproject. This argument is ignored
in subprojects as all subprojects are owned by the top level project.
subproject() now looks for the subproject in ${MESON_SOURCE_ROOT}/${SUBPROJECT_DIR}/foo
where SUBPROJECT_DIR can be assigned using project() in the top level project.