The content of the sha256sum attribute should be lowered before comparing it with the calculated sha256sum.
In the following example the used sha256sum uses ABC.. and not abc.. and the check failed. This should not happen.
```
TASK: [get_url url=http://ftp.fau.de/apache/hadoop/common/hadoop-2.4.0/hadoop-2.4.0.tar.gz dest=/home/vagrant/hadoop-2.4.0.tar.gz mode=0644 sha256sum=024326AC68A1A68B5566B10F95609EAAFD9F70CFEB37FCA0E97CBB1674E57C3A] ***
failed: [instance000] => {"failed": true}
msg: The SHA-256 checksum for /home/vagrant/hadoop-2.4.0.tar.gz did not match 024326AC68A1A68B5566B10F95609EAAFD9F70CFEB37FCA0E97CBB1674E57C3A; it was 024326ac68a1a68b5566b10f95609eaafd9f70cfeb37fca0e97cbb1674e57c3a.
FATAL: all hosts have already failed -- aborting
```
* Adds another module utility file which generalizes the
access of urls via the urllib* libraries.
* Adds a new spec generator for common arguments.
* Makes the user-agent string configurable.
Fixes#6211
This is accomplished by not setting the If-Modified-Since header,
and setting "cache-control: no-cache" instead. Note that if the
file content has not changed, the module will still report that
changed=false, as the md5's of the tmp file and existing file are
compared before swapping
Fixes#5104
(fixes issue #4277)
* The sha256sum error message now displays the invalid
destination checksum if it doesn't match the one that
is specified in the arguments. This is useful for
debugging purposes.
* Non-alphanumeric characters, including the infamous
Unicode zero-width space, are removed from the sha256sum
argument prior to the check.