Pkg/Types: import Base functions to extend instead of qualifying.
Pkg/Reqs: allow multiple positive and negative system assertions.

This addresses @stevengj's requirement of being able to express that
a package should be required on UNIX but not on OS X:

    @unix @!osx UNIXButNotOSX

We're still undecided about whether this change to the METADATA
requires format is going to be too diruptive to go through with, but
if we do, this ability is probably desirable.
Pkg: factor out META_BRANCH (currently "devel").

This paves the way for METADATA versioning via branches. The idea
is that each version of the METADATA format has its own branch.
Incompatible formats can co-exist peacefully because they each have
their own branch in the METADATA repo. Some sort of automated version
of the `remaster.jl` script would be ideal for pack-porting packages
that can be backported to earlier versions. This should be possible
with GitHub service hooks.