(WIP, PUP-1073) Make package use a composite namevar

Makes package uniqueness key a composite of namevar and provider, so
packages with the same name from different providers don't collide.

Making the uniqueness_key more complex than name for packages means that
testing whether name matches title is an insufficient test for whether
to check if the resource is defined and add an alias. Now if the
resource is isomorphic and the uniqueness key is not the resource's
title, add an alias.

Adds an integration spec test for packages with a name collision, but
different providers. Having two packages with matching names but
different name-provider pairs is now allowed. Titles must still be
different.