(PUP-2882) Verify available versions

Prior to this commit we didn't check up front to make sure there is a version
matching what is requested by the --version flag. This changed the error given,
which made acceptance tests fail.

This commit adds a check before even attempting to build a graph to ensure that
there is a compatible version.
Merge pull request #2913 from highb/fix/master/pup-2882_check_available_versions

(PUP-2882) Verify available versions
Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master:
  (PUP-2882) Verify available versions