`sharedInstance` should return `instancetype

Hey,

to ease customization via inheritance of iRate class `+ (iRate *)sharedInstance` method should look like `+ (instancetype)sharedInstance`.

In addition when creating singleton object you should call for `sharedInstance = [[self alloc] init]` instead calling class name directly.

Cheers,
OG