package-load-descriptor: Use `read-from-string' rather than `load'

This allows for some more checks and avoids a potential security vulnerability,
though it's not like this library is very concerned with security in general.
package--dir: Clarify type of `name' argument
Makefile.in: Exclude "data" directory from being byte-compiled

For some reason, make decided to change its mind about how it wanted directory
exclusions to work. This seems to have fixed it.
Use "package-*" prefix for all functions.

This gets rid of `define-package' and friends.
finder-compile-keywords: Use updated `package-desc' constructor.

It was renamed from `make-package-desc' to `package-desc-create', but not
updated here.
Add .travis.yml to branch "package-defstruct"
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.