New module 'set' to define local variables (in scope of play)

This module allows you to set local variables in the scope of the play.

For this we have to make sure Runner() has access to play variables so we can inject these variables during the run of a play. Previously the play variables were static at the start of Runner() but now they can change during a play. I used the same mechanism as 'ansible_facts' so if a module returns 'ansible_vars' it sets local variables.

The module also accepts complex arguments.

```yaml
 - action: set var1="something" var2="${password}"'
 - action: set
   args:
      var1: something
      var2: ${password}
```

There was some confusion before, but this would set a variable that is the *same* for all hosts, just as 'vars:' and 'vars_files:' would set. Limited in use.