When `use-package-always-ensure` is set to `t`, `:ensure` defaults to
`t`. This adds the `alwaysEnsure` argument to
`emacsWithPackagesFromUsePackage` which, if set to true, emulates this
behavior.
Use `fromElisp` (https://github.com/talyz/fromElisp), imported using
`niv` (https://github.com/nmattia/niv), to properly parse the emacs
configuration. This lets us take `:ensure` and `:disabled` into
account when listing packages to install:
- only declarations with an `:ensure` value of true or an alternate
package name will be included; if an alternate package name is
supplied, it will be used
- declarations with a `:disabled` value of true will be excluded
This provides a mechanism for creating an Emacs closure that contains
the runtime dependencies for a given Emacs package source file, by
inspecting its Package-Requires header.