Add support for designating arbitrary link directories/libraries/incldues/include-directories

These interface features will be used by the loader after flattening an environment stack.