Handle 'groups=' (empty string) in user module (Linux)

Makes it possible to remove a user from all but the primary group.

Setting 'groups=' is the equivalent to passing '-G ""' to
useradd/usermod, which is interpreted as "no group" on Linux.
added thirsty option to copy
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
Remove unneccesary quotes from user task
Cleaning up tag compare, getting fully qualified path for executable
Getting fully qualified path for executable
Using new qualified executable
Standarizing module in line with other rabbitmq modules, adding support for setting tracing
Standarizing quotes
Adding aliases
Updating how to run commands in check mode, standarizing quotes
Updating how to run commands in check mode
Fixes for Python 2.4
Fix setup when /sys/block is inaccessible
Clean up some extra_vars redundancy
Fix tilde expansion for fileglob

Use common suffix to determine what part of original term to keep and
how much of the full path to combine to get a usable filename.
Allow using other users' home directories as well
Merge pull request #2043 from chrishoffman/rabbitmq

Rabbitmq Module Updates
Fixing logical error in detecting virtual device.
So In my Centos 5.9 machine, if there is RAID mount ansible will crash, as it cannot find scheduler file. The reason being, this should be a virtual device as there is no "device" folder under e.g. /sys/block/md0/

Here is the crash:

[kk@u1 ansible]$ ansible q3 -m setup -k -u root --tree=/tmp/facts
SSH password:
q3 | FAILED => failed to parse: /sys/block/md0
Traceback (most recent call last):
  File "/root/.ansible/tmp/ansible-1360629441.14-171498703486275/setup", line 1797, in ?
    main()
  File "/root/.ansible/tmp/ansible-1360629441.14-171498703486275/setup", line 1050, in main
    data = run_setup(module)
  File "/root/.ansible/tmp/ansible-1360629441.14-171498703486275/setup", line 1000, in run_setup
    facts = ansible_facts()
  File "/root/.ansible/tmp/ansible-1360629441.14-171498703486275/setup", line 990, in ansible_facts
    facts.update(Hardware().populate())
  File "/root/.ansible/tmp/ansible-1360629441.14-171498703486275/setup", line 312, in populate
    self.get_device_facts()
  File "/root/.ansible/tmp/ansible-1360629441.14-171498703486275/setup", line 439, in get_device_facts
    m = re.match(".*?(\[(.*)\])", scheduler)
  File "/usr/lib64/python2.4/sre.py", line 129, in match
    return _compile(pattern, flags).match(string)
TypeError: expected string or buffer
Merge pull request #2054 from kavink/devel

Fixing logical error in detecting virtual device.
fix remote execution NameError in module 'user'