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.