Make SIMD for with a lastprivate/linear variable vectorizable.

- Wrap SIMD For in an if statement.
- Separate the last iteration of a lastprivate/linear SIMD loop.
- Emit a second copy of the SIMD Loop body if there is a lastprivate variable.
- lowers trip count by one, and calls the body helper again after.
- uses a constant IF statement in the body helper to run the update expression.  This will be optimized out if it is not the last "iteration"
cilk elemental functions

- update the processor names to reflect the 0.9.5 Vector Function ABI
cilk element functions

- add CodeGen test to elemental function
Add tests to check vectorization of reductions.
Fix crash during AST dump when using elemental attributes.
Emit "Cilk plus disabled" error when vector attribute used without -fcilkplus.
Check elemental function return type and parameters

- make it unsupported if passing or returning struct by value

- builtin _Complex numbers are not handled yet

- implicit this parameter is marked as vector
Diagnostic when the linear or uniform clauses of an elemental function contain no parameters
Remove core_2_duo_sse3 as a valid processor in elemental function
- It is not a valid processor
- Add tests for all valid processors
Fix an oversight on the error on missing -fcilkplus when elementals used. Add proper tests.
Emitting elemental function metadata for declarations

- Needs to emit elemental function metadata for used declarations
  with vector attributes, which is necessary for vectorizers.
  This metadata is emitted like llvm attributes which are emitted for
  both function definitions or declarations.

- Basic tests added.
Modify wording of the SIMD vectorlength diagnostic to be easier to read
Emit diagnostic when elemental function vectorlength clause is not a power of 2