Add a2mod instances method on Debian

The a2mod Debian provider (just called `a2mod.rb` instead of
`debian.rb`) did not have an instances method which did not allow
resource purging or `puppet resource a2mod` to work. This commit adds
this by using the `apache2ctl -M` command which lists loaded modules.
Add prefetch & flush; update redhat

The redhat provider can also take advantage of the instances and
prefetch methods used by debian, as can any other OS. The relevant
resource state detection was pulled into a `Puppet::Provider::A2mod`
provider parent.
Committing for holding

Todo:
- doc headers for relevant manifests
- Update readme
- Commit separately
Update specs to pass
Allow SSL certs path to be changed per platform
Update php to php53 on redhat
Update params to allow RedHat 5/6 packages/libs/sslcerts
Add IP vhost support

This commit adds support for IP-based vhost and name-based vhosts
listening on specific IPs.

The use of IP vhosts in combination to non-IP vhosts can lead to
conflicting Listen directives, so the `add_listen` parameter has been
added.

The `port` attribute is no longer required, as IP-only vhosts require no
port (though at least on Listen must still be declared).
Updated content to conform to README best practices template

Before alterations, this content was the module author-determined
description of and instructions for use of the module.

As part of a joint Forge/Docs team effort to standardize formatting and
encourage quality module documentation, a best practices README
template was created via internal and external user testing. That
template was then applied to this module.

I pulled in content from the original README on GitHub. Standard
headings were added (Overview, Module Description, Setup, Usage,
Implementation, etc.) to organize content, existent and pulled-in
content was moved under its appropriate heading and edited for
tone/flow/clarity, and basic formatting was done to adhere to template
standards.
Update specs and parameters for the new vhost stuff
Add lots of example tests
Updated README content to accurately reflect reworked module

Pre-changes, this README reflected the current apache module. However,
the apache module is being reworked.

This is the updated README to reflect the workings of the new module.
It is only a first draft and will have more updates as questions are
answered and development continues. (This version still contains
self-notes. )
Change default_ssl_vhost default from true to false
Change error_pages* parameters to error_documents*
Adding $logroot to apache::params
Correct nonssl/ssl redirect example
Change default_vhost priority to 15
Align arrows
Remove extraneous tests file
Add setenv/setenvif to apache::vhost

`SetEnv` is used by httpd to set environment variables for vhosts.
`SetEnvIf` is used to conditionally set environment variables.