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.
Quote `lambda' forms with #' to satisfy byte compiler.
package-install: Make sure to initialize before trying to install.

This lead to errors when trying to determine if dependent packages had already
been installed before `package--initialized' was set.
Test installing package dependencies.
with-package-test: Use a different user directory on each run.

This prevents old state from hanging around and polluting test results.
package--dir: Receive VERSION argument as a version list.

This is the standard for passing versions around between functions.
package-menu-execute: Re-initialize whenever packages are (un)installed.
package-test: Test upgrading and uninstalling packages.