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)

The Readme still needs to be updated for the changes, documentation in the headers has been updated.