Fix proper defaulting/required of 'state' for gem module

The docs for 'gem' say state is required, but the actual code says it's not required.

If it's not included (and there's no default) then the if block falls through with no changes and no errors (it neither adds nor removes the gem).

This change synchronizes the docs with the code.  It also adds the sane default of state=present, which is consistent with all other modules with the 'state' field.
Add linux module parameters for the modprobe module
Add version_added 1.6 for the params modprobe option
Added multi VPC support

Initial commit

Refactored terminate_vpc method to support vpc_id_tags

Cleaned up find_vpc() method
Renamed vpc_id_tags to resource_tags
Updated module documentation, re: resource_tags
Added code to create tags on the VPC resource
Added 'version_added' to the 'resrouce_tags' attribute in DOCUMENTATION section.
Add support for YAML lists to apt module.
Rename present to running, add new present state

The new present state just makes sure that a container exists, not that
it's running, although it get started one creation.
This is very useful for data volumes. This also changes the old
present, now running (default) state to only create the container if
it's not found, otherwise it just get started.

See also discussion on mailinglist:
https://groups.google.com/forum/#!topic/ansible-devel/jB84gdhPzLQ

This closes #6395
Improvements to ec2 autoscaling modules

* Added desired_capacity and vpc_zone_identifier to ec2_asg
* Use ec2_argument_spec() method and then remove unnecessary
  declarations from argument_spec
* Remove AWS_REGIONS declaration
* Rename block_device_mappings to volumes to be consistent with ec2
* Remove all pep8 warnings except line length and continuation indent
* Use updated module_utils/ec2.py to add profile and security_token
  support
* Remove mandatory arguments for delete to make launchconfig deletion
  work
* Handle existing launch configurations better
* Improve output information
* Improve documentation
service module: Properly disable Debian services

Services on Debian need to be disabled with 'disable' instead of 'remove'
to avoid them being enabled again when 'update-rc.d $service defaults' is run,
e.g. as part of a postinst script.
Only unlink the symlink tempfile on error if it was created in the
previous operation.
Allow state=absent for ec2_vol

Add methods to the module to make it more readable and allow reuse
Allow custom hipchat urls
Make the default URI a constant
Modified library/system/user so that password change date is set on Solaris when updating password
Add a fact providing the full hostname, without the domain portion
truncated.
Accept status code from a list of valid codes.
Accept status code from a list of valid codes.