Skip adding an edge between a pair of plugins if all the following
conditions are met:
- the edge is to be added due to group membership
- adding the edge would introduce a cycle in the absence of any
other group membership edges.
Use ISO language codes directly instead, which has the advantage that
new languages can be used in metadata without having up update the API
to support them. Closes#5.
Rewrite it as reStructuredText so that it can be hosted alongside the
API documentation on Read The Docs, which allows linking to WIP syntax
documentation.