Refactor private Composer methods into Resolver class

The original goal here was to provide a better error message when raising
ConflictingMethod. In order to get there I had to alter the way the method map
resolution worked. Extending a class with a load of messy private methods was
bad, so that's gone too. :beer: