Added IHIMPCast macro, updated Sample Project and Readme

I added the `IHIMPCast` macro and a brief explanation. I also updated the sample project and the Readme to reflect the changes.

In `instance_hook_create` the type of `self` in the block should be `__typeof(objectThatYouAreHooking)` instead of id