initial working commit
Remove TravisCI gems from Gemfile

I think these have limited value for the amount of dependencies they
introduce. I've added a comment to the Travis config with a link for the
online linter. Build history can be viewed at the normal
`travis-ci.org/<user>/<project>` URL.
Change Puppet specification in Gemfile

Allow pessimistic versions to be passed in for Puppet. So that Travis matrix
builds can test against the latest in each major series. The default has
been set to anything in the 3.2.x series. Travis should then be responsible
for testing later versions (like HEAD).
Test against each Puppet series

Will pick the latest version from 2.7.x, 3.1.x and 3.2.x

I'm skipping 3.0.x as it was the bratty child of the 3.x series and doesn't
appear to have received as much adoption. We also experienced some real
problems with testing frameworks on 3.x at the time.
Pedentically re-order travis config order.
Switch from APL2 to MIT license

Per most other GDS open source code. This is hardcoded into the `Modulefile`
for two reasons:

1. It can't simply be changed by modifying the metadata config because it
   needs to match the file/template in the skeleton.
2. The default is APL2 which conflicts with the template.
Add :test rake task for {syntax,lint,spec}

Add a rake task/alias to call the most common test tasks in the correct
order. Make TravisCI run this on all tests.

Unfortunately we can't define :default because it has been claimed by
puppetlabs_spec_helper to print out the list of available tasks. Or rather,
we can, but the output looks messy.
Add package resource and remove service provider

Remove the `provider` param from the `service{}` resource and the respective
variable from the `::params` class. I don't think this is a very good
demonstration of the params class. Not least because Puppet should do a
reasonable job of detecting the right provider for most platforms.

Replace this with `$package_name` and `$service_name` variables, because
these are things that are more likely to change on a per-distro basis. Added
a `package{}` resource accordingly.
Make ::install sub-class notify ::service

This ensures that package upgrades restart the service correctly. Even when
there are no configuration changes.

The other ::config ~> ::service chain has been split out for consistency.

I'm happy with using chains instead of notify/subscribe. Particularly
because it (with the addition of lint) ensures that relationships are only
defined in one direction, which has been an issue for us in the past.

To be determined whether we really need to apply the anchor pattern or not.
Sub-class should include ::params

Rather than assuming the parent class has already included it. As
highlighted by unit testing, this can result in an empty string if the class
is called directly.
Flesh out spec tests for all sub-classes

Include some sensible defaults for spec testing the base class and all of
the sub-classes. These should pass out-of-the-box. They can then be modified
to suit.
Pin to stdlib dependency to 4.x

This gives us, amongst other things, the ability to propagate refresh events
to through anchors. Drops support for Puppet 2.7
Reinstate anchor pattern

This was present in @spiette's original repo. The pattern that @garethr
replaced it with isn't something that I've seen before.

It doesn't satisfy other resources chaining *before* this containing class.
They float off to the side. As demonstrated by:

https://gist.github.com/dcarley/5883522

Notifying the containing class now also notifies the service. Which required
stdlib >= 4.0, per the previous commit.
Disable lint class_inherits_from_params_class

Another check for Puppet 2.6.2 backwards compatibility. Added links for both
of the disabled checks. One was incorrect, due to a problem with the
puppet-lint site, which I've also submitted a fix for:

https://github.com/rodjek/puppet-lint/pull/206
Fail on puppet-lint warnings

This will cause the `rake test` task to fail on lint warnings, in addition
to lint errors. I think this is preferable - we never want lint and we don't
want the warnings lost in a flood of output.
Exclude the same paths for syntax and lint

Both use an array in the same way.
Exclude vendor/ and spec/ from lint and syntax

We don't want to test third-party modules or code, because either:

a) It's code that we don't control and can't easily change.
b) It's code that we do control and are tested elsewhere.
Remove AUTHORS file

I don't see much value in keeping or maintaining this. There's always a
commit log, right?
Rework README

Tidy up headings. Add example section. Link to existing LICENSE file.
Don't fail build if Gemfile.lock is missing

TravisCI builds would fail if a project hadn't committed a `Gemfile.lock`.
Which some may not want to, especially if they are just modules.

Included a comment about why we delete the lock file.