Remove redundant code in TypeConverter

this code does literally nothing, but reduces the performance greatly
Fix NullReferenceException on overload invocation with null parameter

If more than 1 overload matching arguments number is found, JINT tries
to look for the best match comparing desired argument type and actual
argument type. GetType on null throws NullReferenceException.
Fix AmbiguousMatchException in multiple indexers, make getters and setters invocation consistent

If class has more than 1 public indexers, IndexDescriptor ctor throws
AmbiguousMatchException.
If class has a public getter, and another public setter, its handled
inconsistently i.e. you will read from one property and write to another
one.
Greatly improve performance of overload resolution

Exception-based method overload resolution is terribly slow. I get
nearly 100 times performance improvement with this fix.
Furthermore MethodInfoFunctionInstance now don't hide real exception if
thrown by target function being invoked. I strongly recommend to
incorporate the fix into the main repository.
Fetch from upstream, resolve conflicts

Fetch from upstream, resolve conflicts
Resolve new merge conflicts, add pessimistic lock

Based on code review
Merge pull request #77 from h15ter/master

Improve performance of overload resolution, fix various aspects of it