Major refactor
Test refactor after major code refactor
Added handling of non-extensible functions
Used property descriptors & added tests for them
Moved "getClassOf" to Utils class
Changed TypeMatcher to ClassMatcher
Test spec for function arguments handling
Implementation of function arguments handling