Added class method swizzling, moved all swizzling to NSObject category

Detailed changes:
• Removed all `RSSwizle` classes and moved swizzling to `NSObject` category
• Added class method swizzling
• Improved IMP factory design
• Added macros to simplify swizzling, especially return type casting
• Fixed method signature detection of replacement block for objc types (type encoding for objc types didn't return `@` but `@"ClassName"` which caused a false positive error)