Improve groups.

This changes the way groups are remembered when evaluating the DSL,
so they can be nested more flexible and also take multiple name, so
its plugin are part of multiple groups with a single definition.

The idea comes from the following Google+ post:
https://plus.google.com/114035850232644654438/posts/HTNs9tcWVAt

My initial idea was that the shared plugins should go to the top
level, so they are part of the `default` group and always executed,
but as it turned out, this feature was broken. So instead of fixing
it, I implemented the multiple group names and updated the README.
Merge branch 'improve-groups'