package-test: Re-indent whole file
package-test: call `package-initialize' before `package-installed-p'
package: Rename `package-unpack' to `package-unpack-tar'

Increases clarity
package-user-dir: Use `file-name-as-directory' for default
Create `package-desc' helper functions.
package-load-descriptor: Use `package-read-defined' for most work.
package: rewrite installation method for packages.

For tar packages, the archive is extracted to a temporary directory,
has its package-definition file parsed, and then copies the files to
the destination directory. The tar file is no longer parsed by Emacs
within a buffer.

`package-install-single' replaces `package-install-from-buffer'.
package-generate-autoloads: receive a `package-desc' structure
package--write-file-no-coding: Add optional argument `mustbenew'
package-delete: Remove redundant file name expansion.
Re-indent cl-* and ert-* forms with `lisp-indent-function' set
Drop leading "-" from arguments to "tar"

It is unnecessary.
Fix multi-file installation.

There were some crazy issues with the starting directory for un-tarring.
package-download-file: Handle all package file downloads.

Make `package-install-file' use new API.
Remove unused function `package-tar-file-info'

All tar info is gathered during `package-install-tar' by reading from the
already-extracted descriptor file.
Add a test package with a dependency.
package-with-cd: Return to run-time value of `current-directory'.

Instead of macro-expansion-time.
package-desc-from-define: Parse requirements into (NAME VERSION-LIST)

The version had been left as a string, rather than a list.
with-package-test: Unconditionally `cd' back to original directory.
Remove `package-autoload-ensure-default-file', assume recent Emacs

This function was only needed for Emacs versions which did not have
`autoload-ensure-default-file'. Emacs has had that function since version 22,
which came out in 2007.