Pkg.status: more informative output (unregistered, dirty attributes)
Pkg.tag: ensure that existing has eltype VersionNumber.

This could cause no method errors in certain circumstances.
Pkg.tag: allow symbolic versions defaulting to :patch [close #4092]

Also refuse to tag when the package repo is dirty. This is to keep
people from accidentally tagging without committing everything. If
you really have changes that you don't want to include in the tag
then you can just stash them while tagging.
Pkg.tag: distinguish between bumping (default) and patching.

Bumping the version will remain on 0.0.0 (or other rewritable versions)
whereas patching will always go to the next real patch version.
Pkg.register(pkg,[url]): register a new package with METADATA.

I'm considering wether this should automatically register any tagged,
annotated versions that are in the package repo.

This also changes the package scaffolding to make a git:// url the
default origin for a new package since that's what is expected when
registering it.

Closes #1753.
versions: correctly compute next versions of pre-releases + tests.
Pkg: allow versions like 1.2- and 1.2+ to be re-tagged like 0.0.0

Tag "bumping" understands this convention and tags appropriately.
Pkg.tag: use only ancestral tags to determine the next tag.
Reshape can accept : in place of a dimension to signal that dimension's size should be inferred from the others. Closes #4250