Reduction of BindingHandler::FindBestMethod

Remove method cost evaluation code to separate `GetMethodCallCost` method, reducing complexity (and size) of code.

Might be a good idea to create a costing method first that does not do conversions, then call a separate argument conversion method to do the actual conversions.  The costing method could return a mapping list instead of doing the actual conversions, then the conversion method does the conversions as required.

At this point it's probably premature optimization though.  Not many people are going to have hundreds of methods that need to be checked often, and it's not really our job to protect people against their own bad code.