This patch adds support for the #pragma clang attribute directive that was proposed recently at http://lists.llvm.org/pipermail/cfe-dev/2017-February/052689.html.
Initially it supports the annotate, require_constant_initialization and objc_subclassing_restricted attribute (I added support for the last two to verify that only those declarations that are specified in the Attr.td subject list can receive the attribute). The attributes are parsed immediately and are applied individually to each relevant declaration. The attribute application errors aren't reported more than once. The annotate attribute, which doesn't have the subject list, is applied only to those declarations that can receive explicit GNU-style attributes.