RFC: Methods for checking required() and installed() packages

See #1888

I tried returning an empty vector in required(pkg_name) but packages can be added without a specific version being listed. In other words, if I return an empty vector I can't tell the difference between a package that isn't required at all and one that was added without a specific version.