linkage_checker: check variable references with dlopen
linkage_checker: check variable references with dlopen

The linkage check currently does nothing to check the validity of
variable-referenced libraries (prefixed with an `@`).

We could rectify that by mimicking the dynamic linker in looking up the
variable-referenced library, but this could get quite complicated.
Instead, let's let the linker do the hard work by checking if we can
`dlopen` libraries and bundles that contain variable linkage. The
`dlopen` will fail if the linker cannot resolve the variable reference.

There are at least two disadvantages to this approach relative to the
alternative suggested above:
1. This doesn't work for binary executables.
2. This doesn't identify which variable references are broken.

It's still better than not checking them at all, which is what we do
currently, and saves us from having to carry around code that parses and
verifies variable references directly.

Homebrew/brew,Homebrew/brew,nandub/brew,MikeMcQuaid/brew,Homebrew/brew,nandub/brew,JCount/brew,JCount/brew,MikeMcQuaid/brew,MikeMcQuaid/brew,JCount/brew,Homebrew/brew,MikeMcQuaid/brew,nandub/brew,nandub/brew,JCount/brew