Adds protocol relative URL support to the S3Link view helper.

Protocol relative URLs (e.g. "//my-bucket.s3.amazonaws.com/my-object")
are useful to make an efficient use of your S3 resources; on secure
pages, secure objects will be requested and on insecure pages, insecure
objects will be requested.

Backwards compatibility is maintained in this patch, with HTTPS links
remaining the default and the setUseSsl() and getUseSsl() functions
remaining.  I have marked them deprecated as using ssl or not is no
longer a binary decision after this patch, as three schemes (https, http
and protocol relative) are now supported and so setScheme() and
getScheme() are more appropriate.
Add abstract link helper class with common link functionality.
Use AbstractLinkHelper to provide common functionality for S3 and CloudFront.

* This adds setScheme() support for CloudFront and keeps things DRY.
* Add CloudFrontLink tests for protocol relative URLs.