Create rules for emitting PackageFilesInfo, PackageDirsInfo (#273)

Create rules for emitting PackageFilesInfo, PackageDirsInfo

This change creates rules for emitting `PackageFilesInfo` (`pkg_files`) and
`PackageDirsInfo` (`pkg_mkdirs`) providers.

The implementations and tests of these rules are largely similar to the rules
that currently exist in `experimental/pkg_filegroup.bzl`, with a few notable
differences:

- `pkg_filegroup` is replaced with `pkg_files`.  `pkg_filegroup` will be
  re-implemented as a grouping provider in a future change.

- `pkg_files` now checks for files that map to the same destination.  The check
  was previously deferred to the packaging rules themselves.  This behavior is
  now tested.

- `attributes` (formerly `attrs`) checks for `pkg_files` and friends are now no
  longer strict.  Only the "unix" attribute is verified.  The logic for how to
  check this isn't yet complete, but it's enough to make forward progress.

- `section` for `pkg_files` and `pkg_mkdirs` is removed.  It will be replaced
  with more specific attributes as needed.

- `make_strip_prefix` is removed in favor of the `strip_prefix` pseudo-module.

- Prefix stripping failures will now cause build failures.  The old
  `pkg_filegroup` rule would ignore them.

`pkg_mkdirs` is effectively unchanged, other than differences in the providers,
and `attributes`.  The tests are also effectively unchanged, excepting those
regarding `section` and the ones added above.

Additionally:

- The "common attributes" table pkg/docs/reference is now aligned, and
  describes the "attributes" attribute of `pkg_files` and `pkg_mkdirs`
diff --git a/pkg/tests/BUILD b/pkg/tests/BUILD
index a7da3cb..f94f3ad 100644
--- a/pkg/tests/BUILD
+++ b/pkg/tests/BUILD
@@ -20,6 +20,8 @@
 load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
 load(":my_package_name.bzl", "my_package_naming")
 
+exports_files(glob(["testdata/**"]))
+
 filegroup(
     name = "archive_testdata",
     srcs = glob(["testdata/**"]) + [