Binding fixes to support Object parameters and duplicate method names

Changes as below:

### Add support for parameters of type 'Object' accepting any type of value.

Updated the `BindingHandler::GetChangeTypeCost` and `BindingHandler::ChangeType` methods to support bound object methods that take `Object` parameters.  `GetChangeTypeCost` returns 2 if the target type is `Object` so that better matches get a chance.

### Fix object binding to allow multiple methods with same name.

Seems like the `BindingHandler::FindBestMethod` method is trying to determine the best option among multiple methods with the same name, but `BindingHandler::Bind` throws an exception when trying to bind to objects with multiple methods with same name(s).

Fixed `BindingHandler::Bind` method to only attempt to add each name to the dictionary once only.

*NB: this is my first pull request.  Let me know if I did anything wrong :grinning:*