Always allow anonymous read of public repository over HTTP

This is the rebased version which:

1. Check for disabled ```Git Smart HTTP```
2. Allow anonymous read over ```HTTP``` for public repository even when ```Git Smart HTTP``` is ```HTTPS only```.

My apologies for all the noise before this version.

Regards.