Support for Objective-C interface declarations

These commits add class and protocol interface declarations. I also made sure that Objective-C special syntax, including message expressions, are only available if the `ObjC` extensions are active.