Protocol fakes now work with protocols that conform to other protocols

Previously, if you had a protocol that conformed to other protocol, like:
```
MyAwsomeTableViewDelegate <UITableViewDelegate>
```
methods from UITableViewDelegate would not be implemented. This pull requests solves this issue by making sure that all protocols, up to NSObject, are implemented. Since <NSObject> is already implemented by NSObject class it is omitted.