Fix indeterminacy and use generators.

First, there was a bug in ``.nextmeeting CHANNEL`` where it would arbitrarily
return different meetings as the next one up.  Now, this explicit sorts the
meetings it gets back so we know that the next one is really the next one.

Second, this makes use of generators and ``itertools`` to avoid flattening the
meetings into a list (for fun!)
Add a new (plural) .nextmeetings command.

It returns the next 5 meetings in any channel:

.nextmeeting fedora-meeting
threebean: In #fedora-meeting is fesco (starting in a minute)
threebean: In #fedora-meeting is Fedora Cloud Workgroup (starting in an hour)
threebean: In #fedora-meeting is Fedora Ambassadors Latam Meeting (starting in 4 hours)
threebean: - https://apps.fedoraproject.org/calendar/location/fedora-meeting%40irc.freenode.net/

.nextmeeting fedora-meetingwhatever
threebean: There are no meetings scheduled for #fedora-meetingwhatever.

.nextmeetings
threebean: One moment, please...  Looking up the channel list.
threebean: In #fedora-meeting is fesco (starting in seconds)
threebean: In #fedora-meeting is Fedora Cloud Workgroup (starting in an hour)
threebean: In #fedora-meeting is Fedora Ambassadors Latam Meeting (starting in 4 hours)
threebean: In #fedora-test-day is Atomic Test Day (starting in 6 hours)
threebean: In #fedora-meeting is Weekly Security Team meeting (starting in 20 hours)
Merge pull request #21 from fedora-infra/feature/nextmeeting-improvements

Three changes to the fedocal integration.