Refactor like it's a goin outta style

Egged on by pylint. But really, needed to simplify the data flow between
functions so it's less error prone. Mostly added a container
class (RecombinationEvent) to hold all the info.