Improve error detection for URL manifests, and skip parsing if content unchanged

This bit me yesterday when I created a VM with an invalid manifest, looked in the kubelet.log, and did not find any error.
Up to you; I just noticed that I was getting "Setting pods for source http : {...}" in my kubelet.log every 20 seconds, and it seemed like it could potentially be a lot of log output for something that may never change.  It seemed preferable to me if the logs have output only on error or on change.