Fix regex match, the printf match should work with 0 or more numeric padding characters, not 1 or more
Store hosts for a play as a play attribute

Operate on that play attribute to make things faster for larger
inventories. Instead of making a round trip through inventory.list_hosts
and working through some lengthy list comprehensions over and over
again, calculate the potenital hosts for a play once, then reduce from
it the unavailable hosts when necessary.

Also moves how the %fail is done. The host count is a play level count
of available hosts, which then is compared after each task to the
current number of available hosts for the play. This used to get a new
count every task which was also time expensive.
Store the list of hosts to run on in runner object

This reduces the number of times inventory.list_hosts is called, which
can be costly. When coming from a playbook that data is already known.
Resolve su bug in paramiko libs
Revert "Revert "Merge pull request #5325 from angstwad/add-su-support""

This reverts commit c17d0e0357f1f3bdc7389eaa3171444fccda8b76.

Conflicts:
	lib/ansible/runner/connection_plugins/paramiko_ssh.py
Fix an issue where git-pull fails with AttributeError

As part of 94f3b9bfab69feefa37bb006bf75f4a1b8acb19f the code was changed to support dynamically adding localhost to the inventory. This change introduced an crash when run via ansible-pull

```
Starting ansible-pull at 2014-01-20 23:09:57
Traceback (most recent call last):
  File "/tmp/ansible/bin/ansible", line 157, in <module>
    (runner, results) = cli.run(options, args)
  File "/tmp/ansible/bin/ansible", line 82, in run
    hosts = inventory_manager.list_hosts(pattern)
  File "/tmp/ansible/lib/ansible/inventory/__init__.py", line 372, in list_hosts
    result = [ h.name for h in self.get_hosts(pattern) ]
  File "/tmp/ansible/lib/ansible/inventory/__init__.py", line 136, in get_hosts
    subset = self._get_hosts(self._subset)
  File "/tmp/ansible/lib/ansible/inventory/__init__.py", line 177, in _get_hosts
    that = self.__get_hosts(p)
  File "/tmp/ansible/lib/ansible/inventory/__init__.py", line 198, in __get_hosts
    hpat = self._hosts_in_unenumerated_pattern(name)
  File "/tmp/ansible/lib/ansible/inventory/__init__.py", line 275, in _hosts_in_unenumerated_pattern
    ungrouped.add_host(new_host)
AttributeError: 'NoneType' object has no attribute 'add_host'
```

The root cause is there is no group for the host to be added to. I fixed this case by creating the ungrouped group when it doesn't exist and then adding the host to the newly added group. This fixes the regression for me.
documentation typos
notify/grove: set the service to "ansible" by default
digital_ocean: added requirements in DOCUMENTATION
Merge pull request #5697 from kormoc/fix_missing_localhost_group

Fix an issue where ansbile-pull fails with AttributeError
Merge pull request #5705 from resmo/fix/doc_do

digital_ocean: added requirements in DOCUMENTATION
Merge pull request #5704 from zimbatm/default-grove-service

notify/grove: set the service to "ansible" by default
Merge pull request #5699 from jpmens/un1

module unarchive: documentation typos
Merge pull request #5690 from sivel/rax-regex-fix

rax module: Fix regex match
Merge pull request #5694 from angstwad/add-su-support-revert

Add su support
Fix merge conflicts from #5519
Bug in constants.py, ANSIBLE_SSH_PIPELINING should be coerced to boolean
Bug: chmod should be called only if the tmp dir was created in the first place
Merge pull request #5723 from jeromew/ssh_chmod_bug

Bug: chmod should be called only if the tmp dir was created in the first...
Merge pull request #5722 from jeromew/pipelining_default

Bug in constants.py, ANSIBLE_SSH_PIPELINING should be coerced to boolean