Fixed few bugs:

1) Didn't handle with fields overriding correctly (should throw
exception in that case)
2) Didn't handle with method overloading from extending class correctly
(should throw exception in that case)
3) Didn't allow to call a method with parameter of subtype of the
original parameter even though it's legal