Support upgrading packages not already in our overlays.
Support upgrading packages not already in our overlays.

The cros_portage_upgrade script used to assume that any packages the
user wanted to upgrade already existed in one of our overlays.  This
assumption is implied by creating a dependency tree of all given
packages as a first step.

However, this prevents the script from being able to add upstream packages
to portage-stable if that is what the user wants.  This fix supports that.

I also added a check early in the run to resolve arguments to package names
to verify that even if a package isn't found locally it does exist upstream.

This situation came up when upgrading sys-devel/gdb.  The upgraded gdb
requires virtual/yacc, which we don't have now.

BUG=chromium-os:19251
TEST=Run --upgrade with these arguments:
sys-devel/gdb  --> Should failed dependencies
sys-devel/gdb yacc --> Still fails, because "yacc" becomes "dev-util/yacc"
sys-devel/gdb virtual/yacc --> Should go through
sys-devel/gdb foobar --> Fails package resolve check

Change-Id: Ib22ef0d083cce8603857027dfe3600c5d1c3e20f
Reviewed-on: http://gerrit.chromium.org/gerrit/6250
Reviewed-by: Darin Petkov <78a9f901370f79bffab0f0650001fa5e6b8f6fd2@chromium.org>
Tested-by: Matt Tennant <46e612415b446ccde19638e4035892001c237942@chromium.org>

bpsinc-native/src_third_party_chromite,bpsinc-native/src_third_party_chromite,zhang0137/chromite,chadversary/chromiumos.chromite,coreos/chromite,coreos/chromite,zhang0137/chromite,zhang0137/chromite,chadversary/chromiumos.chromite,coreos/chromite,bpsinc-native/src_third_party_chromite