Split @protocol into @protocol and @for and add __impl__(:for)
Merge pull request #1481 from meh/protocol

Split @protocol into @protocol and @for and add __impl__(:for)