Generate the isAllowedClauseForDirective function from tablegen. This patch introduce
the VersionedClause in the tablegen file so that clause can be encapsulated in this class to 
specify a range of validity on a directive.
VersionedClause has default minVersion, maxVersion so it can be used without them or 
minVersion.
Please add punctuation to all comments.