Updated the Vim highlighting for Chapel
Properly implement substring for ranges.

For some reason, substring with range arguments was never properly
implemented in the modules even though the runtime function to do so
(string_select) has been present for a while.  It's been a mystery to
many of us how this works, but the guess was that was some form of
promotion.

This commit adds the explicit range version of substring.  It also
changes the return type for the string_select primitive to be c_string
(yet another one I missed).
Initial update to licm to support hoisting wide things

Initial update is simple to stop not-hoisting wide things, and to not hoist
globals.
Add list of currently known failures
update list of regressions
update what variables we check to see if we will perform licm

Licm is not designed to handle functions that have sync or atomic variables in
them. This makes that check also look for references to atomic variables.
Update to licm for hoisting wide things

Because flattenFunctions does funky things, a variable that should be passed by
ref isn't always done so. As a result I also have to check if an argument is a
ref argument in addition to if it is passed by ref.
Update some comm counts

Update comm counts for:
 - distributions/robust/arithmetic/performance/multilocale/alloc
 - distributions/robust/arithmetic/performance/multilocale/alloc_all

This updates the comm counts for most distributions for these tests as they
improved with the updates to licm. Note that alloc_all.replicated did not seem
to change, but I didn't investigate at all.
Remote list of current failures
Clean up licm.

Now that licm has been moved before insertWideReferences, there's no reason to
check for wide things.

I also updated how to check if a variable is passed by reference and added a
better comment to it.
Update compiler perfkey order to reflect licm being moved
Update lots of comm counts for the better!
Remove accidentally added .good file
David's keen eye noticed that there was in fact a working substring
for ranges in ChapelRange.chpl.  I move body of that version to the
CString module in String.chpl.
Add LLVM backend support for C For Loops
Merge pull request #291 from mppf/fix-llvm-c-for-2

Add LLVM backend support for C For Loops

Directly support C for loops in the LLVM backend.
Tested with make check for LLVM and non-llvm builds and
with test/types/range/diten/cForLoops and with zipRange.chpl
therein with --no-scalar-replacement and/or --no-inline. Tests OK.

Also fixes up some previous LLVM code generation that added
unnecessary ICmpNE in some cases.

Reviewed by @ronawho

The LLVM backend seems to be working after this patch. I'll do more testing before the release.
Merge branch 'master' of github.com:chapel-lang/chapel into fix-range-substring
Merge pull request #294 from hildeth/master

More futures cleanup

Marked functions/iterators/tzakian/open_inside_file_iter as passing.
Updated the .bad file for par_iter_recursive, due to line number changes in ChapelArray.chpl
Recorded recent anomalies and regressions in the TRIAGE and REGRESSIONS files.
[Not reviewed.]
Merge pull request #285 from Kyle-B/vim-syntax-update

Update the Vim highlighting for Chapel

* Removes the highlighting for characters and made '...' and "..." equivalent.
* Adds the 'inline' and 'with' keywords
* Removes some commented out rules

A few things still don't highlight correctly, but this is all the effort I want to put in for now.
Removing old Samples

The Samples/ directory used to not be tested and was designed for
illustrative purposes.  It feels very stale, though, and seems like
it could be used for tests that are run for illustrative purposes,
so let's reclaim it.  Removing old samples for now.