(PUP-2882) Detect when module is not on forge

Prior to this commit it was unclear when upgrading a module not found on the forge
wether there was no available upgrades on the forge or the module was simply not
on the forge.
This commit adds a check before even attempting graph/dependency resolution to
see if the module exists on the forge and quits if it is not.

Also adds a downgrades error which we will use later once we figure out how we want
to handle downgrades.