SE-0386: `package` access modifier

This idea has been discussed before and I agree it's important. It's actually already implemented as an underscored attribute (@_implementationOnly import).

I don't think that package private modules can address the same needs as the package modifier. Being required to group every interface that ought to be private to the package into separate modules is an awkward restriction on the organization of code and it doesn't work for a common case like this:

// PublicType is declared in a "public" module in your package
public struct PublicType {
  // This field is an implementation detail needed by other modules in the
  // package but is not meant for use outside the package
  package var x: Int 

  // ...
}

An extension in a package-private module is not a substitute for this since the extension cannot declare storage or implement a wrapper for x without x being public.