New Feature: Unlimited Non-public Method Replacement

* All: Supported the feature that be able to replace any methods that have some non-public type in its signature.
* NuGet: [NOTICE] Changed the generated stub's API. It became that the indirection stubs and proxies are generated ALWAYS(overwrite). Until now, it no longer generates stubs and proxies after it generated them once.
* All: Removed all committed indirection stub files. Because they become to be generated always.
* All: Added unit test for replacing non-public methods.
* Framework: Enhance the helper functions for non-public method replacement.