Protocol support for Objective-J

This is now ready for prime time