added validate option to copy

lets you add a validation check to files you are copying (ie. visudo -c), if validation fails it returns the error output from the check.

sample playbook:
```
- hosts: all
  tasks:
    - copy: src=files/collectd.conf dest=/etc/collectd.conf validate='/usr/sbin/collectd -tC %s'
```