(maint) Add error message if GitURI is nil

Prior to this commit, if the options param was left out from the
ci:test:git rake task, it would only tell the user that nil was an
unrecognized task i.e.

`#<ArgumentError:  is not recognized.>`

This was not helpful in the case where that uri variable was nil.

This commit changes that by adding a ArgumentError check to see if that
git uri is nil.
(maint) Throw error if install urls are missing from final options

Prior to this commit, if the git urls were missing from the
final_options hash, the rake task would try to do a match on a nil
object and fail. This commit fixes that by raising an ArgumentError if a
url is nil.
(maint) Allow git URI to be specified in local_options.rb

Previously, the Rakefile assumed if you were doing a `git` type
acceptance test that the repos to install were of the form
`puppet#stable` or just `puppet`. In either case, environment variables
GIT_SERVER, FORK, and SHA were used to generate the actual URI, e.g.
git://<server>/<fork>#<sha>

However, if the repo to install was an actual URI, then the Rakefile
would silently map each repo to `nil`, and would trigger the error
message added in 099b0cbd6.

This scenario would always happen if you ran the tests once, and copied
`merged_options.rb` to `local_options.rb`, and attempted to re-run the
tests with the same configuration as last time. In that case,
`local_options.rb` would contain URIs of the form:

   :install=>
     ["git://github.com/puppetlabs/facter.git#stable",
      "git://github.com/puppetlabs/hiera.git#stable",
      "git://github.com/puppetlabs/puppet.git#master"
     ],

This commit modifies the Rakefile to preserve the specified URI if it
doesn't match one of our "short" versions, e.g. puppet#stable. This only
applies to `git` type tests.
Merge branch 'pr/3405'

* pr/3405:
  (maint) Allow git URI to be specified in local_options.rb
  (maint) Throw error if install urls are missing from final options
  (maint) Add error message if GitURI is nil

Closes GH-3405