getProtectedImageURL violated the paradigm

It urlencoded the parts of the link which violates the rules that things
stay un-encoded internally and are encoded as needed when output.
Merge remote-tracking branch 'origin/master' into 1.4.6