Pkg: some very basic testing; must be run explicitly.
Pkg: make Pkg.add and Pkg.rm more resilient to failures.
Pkg: allow package versions to depend on specific versions of Julia.

This also provides the facility to tell the version resolver that
certain package versions are fixed. This has the affect that it
doesn't try to determine a version for those packages, but will
exclude versions that depend on the fixed packages *excluding* the
fixed version number given. The dependency on Julia is injected as
a fixed dependency on the current julia version. Thus, any package
that specifies a dependency for the julia "package" while doesn't
include the current Julia version, won't be considered for install.
Fixed version are currently only used for this, but pacakges that
are on-branch or dirty should be considered fixed.
versioninfo() function. closes #1351
Pkg: don't rely on submodule for determining which are packages [#2315].

This is a small, hopefully non-invasive step towards relegating submodules
to a snapshotting mechanism, rather than a first-class part of the way Pkg
works. Hopefully this cures some of what's ailing us.

Conflicts:
	test/Makefile