Public HTTP clones and remove auth request for public projects

This resolves issues #2582 and #2583.  This change pulls a small amount of code from the grack project into the grack_auth module for the purpose of checking for a public project earlier that the validation step.  This resolves issue #2583 by not presenting the auth request for public projects.