Support 'Fedora-Modular' validation events
For the Fedora 27 cycle, we decided to split off development
of the 'Modular Server' edition from the rest of Fedora 27. As
a consequence of this we have a separate 'Fedora-Modular'
compose stream, with nightly and candidate composes for the
'Modular Server' edition, on a different release schedule to
the main composes. To support validation of the Modular Server
release, we need to have a parallel stream of validation events
which doesn't interfere with the main stream of Fedora 27
validation events.
This giant commit achieves this. Various relevant `Event` and
`Page` subclasses now have an optional `modular` arg; if this
is truth-y, the event or page will be for a modular compose.
Page and category names have 'Fedora Modular' in them instead
of just 'Fedora'. The `Release` class also has an optional
`modular` arg; if this is truth-y, `milestone_pages` will find
pages for Modular events for the given release, not 'regular'
events. On the wiki side I've added modular equivalents for
`CurrentFedoraCompose` (`CurrentFedoraModularCompose`) and
the `Current` redirect pages; python-wikitcms will update these
when creating modular composes, rather than the non-modular
pages. `get_validation_page` and `get_validation_event` also
get a `modular` argument that can be set truth-y to search for
a Modular page / event; they will also automatically do the
right thing when passed a Modular compose ID. Finally, the
page generator bits in `listing` are enhanced to recognize
Modular page names and return appropriate `Page` subclass
instances.
Signed-off-by: Adam Williamson <awilliam@redhat.com>