Ming Jin: added cas auth strategy support

This patch is to add CAS Auth Support into gitlabhq 5.3-stable. The code is tested against my company's cas server and it works.

As CAS server may not respond with the auth info as required, e.g. uid, name, email, the rules for new user creation is:
1. if the name is not returned, uid will be used
2. if the email is not returned, the value of email will be combined with the value of uid and the value of variable 'mail_server' defined in gitlab.yml
3. if the value of variable 'mail_server' is not defined, the value of variable 'host' in CAS settings will be used

Please let me know if there's any question.