The Great Refactoring(TM).

I am refactoring pretty much everything here. The decision was made to make
testing easier, which I realized was necessary. At the time of writing, I have
coverage for almost everything.
Adding support for the --primary directive.
Fixing bug with finding best configuration.

An error occurred where a non-matching configuration was returned by
best_matching_configuration. It happened due to operator precedence which I
did not think properly through.
Adding test coverage for all the things!
Bump version.