Cilk for statement parsing

- Some parsing tests are enabled

- Changed Cilk Plus keywords scope from KEYCILKPLUS to KEYALL
  for better diagnostics which is also consistent with icc's
  and gcc's implementations.

- Keep failing tests in *-xfail.c/.cpp
Empty CilkForStmt AST node that derives from ForStmt
Generate CilkForStmt

- AST is minimal and only for basic semantics analysis
Check _Cilk_for condition form

- Checks that the condition is of the form var OP expr, or expr OP var, where
  var is the loop control variable.
- Ensures that OP is one of <, <=, >, >=, or !=.
- Tweaked some error messages.
- Checks the type of end - begin (and that the operator- exists).  Currently the
  resulting BinOp AST node is not stored anywhere, but it will be needed to
  compute the loop count after stride is incorporated.

- FIXME: the method used to get the VarDecl for the loop control variable is
  incomplete.
Cilk for loop body semantic analysis

- Introduce CilkForDecl for a Cilk for statement. This implicit
  declaration desrcibes a Cilk for statement and serves as the
  DeclContext for variable capturing.

- Check break/goto/return statements inside a Cilk for statement
Remove Decl::CilkFor from isClosure

- This method is not used in a way that affects captured statements.
Diagnostics for cilk_for initializer
Basic checks for cilk_for increment.

This generates an error unless the cilk_for increment:
 - is a unary ++ or -- (both postfix and prefix are allowed)
 - is a binary += or -=, where the RHS is integral

In other cases, an error is generated.

This does not yet handle parenthesized expressions.

This does not yet handle overloaded C++ operators.

Tests updated in test/Sema/cilkplus-cilk-for-* to reflect this.
Revert "Basic checks for cilk_for increment."

This reverts commit a96f0ed57b93db884f77c83b3b1e4c998d659089.

My commit was bad, and I should feel bad.

I will not break the build.

I will not break the build.

I will not break the build.