core: Support loop rerolling

Summary:
  - Enable loop rerolling on cfX clang by default.
  - Support disabling locally via LOCAL_NO_LOOP_REROLL_SUPPORT
  - Enables vectorization and can also reduce code size.
  - Can transform a loop like this:

    for (int i = 0; i < 3200; i += 5) {
        a[i]     += alpha * b[i];
        a[i + 1] += alpha * b[i + 1];
        a[i + 2] += alpha * b[i + 2];
        a[i + 3] += alpha * b[i + 3];
        a[i + 4] += alpha * b[i + 4];
    }

into this:

    for (int i = 0; i < 3200; ++i) {
        a[i] += alpha * b[i];
    }

Depends on D428
Depends on D429

Test Plan: gtg

Reviewers: randall.rushing, anders3408, jriordan001, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D424