Use a library for external packages

This PR modifies the behavior of the `external.packages` option, by creating a new library, `packrat/lib-ext`, in which user packages specified within `external.packages` are symlinked from the user library into this 'ext' library.

Status and restore now ignore packages within `external.packages`, although `snapshot` still captures them as dependencies.