Add POST_BUILD to the dkms_conf_variables list.

The POST_BUILD directive is ignored by the read_conf() function
because it not in dkms_conf_variables list.
Use STRIP[0] as the default for the STRIP array.

If STRIP[0]='no' is set for the first module in a dkms.conf file,
then all other modules are usually built the same way. Producing
stripped and unstripped modules in the same build is rarely useful.

Thus, if STRIP[0] is explicitly set, then use it as the default
value for all other unset entries in the STRIP array.
Add dependency logic for automatic builds.

Implement a BUILD_DEPENDS directive that instructs `dkms autoinstall`
to build Linux modules in a specific order. The motivating case is

  lustre -> zfs -> spl

Where ZFS fails to build if SPL is not already installed.
Fix zfs autoinstall failures for kernel upgrades.

The module dependency logic has a faulty assumption that fails if the dependee
is built before the dependent during separate `dkms autoinstall` invocations.

For example, if zfs-dkms is built after spl-dkms, and if `dkms autoinstall` is
run separately for each, then it no-ops like the BUILD_DEPENDS is unsatisfied.

Generate the installed_modules list early and move the dependency reduction
logic to the top of the installation loop.
Reset build dependencies

For each iteration we need to rebuild ithe list of uninstalled
build dependencies.  To do this next_depends must be reset for
each pass so it can be recalculated.  Otherwise, we can hit the
install_count early return and not install all the requested
packages.

The code should also use 'continue 2' instead of 'break 2' to
ensure the full list of build_depends is checked.