Step 9: Refactoring towards clear composition

A variety of refactorings. Moving towards a clearer Incidents/Incdent
object that can be used to compose Rhyme. Some naming fixes.
Step 10: Firmly establish Incidents object

This cuts down on the knowledge Rhyme and its parts have to have about
Incidents. Incidents is now clearly a collection of objects that respond to
actor and action.
Step 11: Separate Actors from Actions

Now we have Actors and Actions as distinct collections. They have the
exact same behavior, but we want to give them clear names. Hence the
little bit of inheritance.

Incidents had to change to allow it to accept actors and actions,
instead of one already-built incident hash. And the build_incidents
method has gotten a little nastier as a result.
Step 11: Total shuffling

With Actors and Actions extracted, we can now do whatever we want to
them before building our Rhyme. Shuffle was the first request.