Make narrowWideReferences its own pass.
Dereference widenMap at the call site.
Update compilerPerformance.perfkeys with new pass.
Merge remote-tracking branch 'upstream/master'
io: add function isDir

This function will check whether the given path is a directory.
io: add isFile

This function will check whether the given path is a regular file.
Add an example of using the targetLocales method on arrays
Fix passing sync/single variables by ref/blank intent.
Catching up on past 6 weeks regressions...
Merge branch 'master' of github.com:chapel-lang/chapel into dist-primer-lsq
Adding exampels for the 'localSubdomain(s)' functions
Add a multilocale test for chdir/cwd().

Suggested by Michael.  Multi-task one is next.
Update the comments on chdir and cwd to represent their behavior in multilocale
situations.
Followed up on reviewers' comments.
Added tests. Retired a future.
Added another isX test; strengthened type-tests.chpl.
type-tests.todo.chpl is now covered by type-tests.chpl,
so I removed it.
More test adjustments.
Also allowed sync/singles in tuple *types*
- see parallel/sync/diten/tupleOfSync.chpl
Fix for io_test C compilation error.

The error message being displayed by the C compiler (GCC version 4.4.1 or newer) is
meaningful.  It warns that the program is attempting to free something that is not
heap-allocated -- in this case "\n" and the definitions of other ioLiterals.

The reason why the error only appears when --fast is supplied is that aggressive inlining
brings the call to free() into the function where an ioLiteral is passed to it, so under
those circumstances the C compiler can see that something stupid is being attempted.

In the original code, the author thought is was safe to free by explicitly avoiding known
cases where the contents of a c_string was owned by another program entity.  However,
since the IO module also supplies unowned c_strings it is unsafe in general to delete
them.  I added comments liberally to the module code where c_strings are accessed, so
future programmers are warned away from this practice.

Looking forward, except where performance is a concern, strings should be used in
preference to c_strings.  The new implementation of strings will manage memory correctly,
so the programmer who uses such objects need not concern himself with ownership details.
Followed up on the second round of Brad's comments.

Two TODOs:
* [ ] David's review of test/modules/diten/moduleNotInitialized.chpl
* [ ] why passing sync/single by reference is specific to ref/blank intents?
Merge branch 'master' into fixCStrings
Factor llvm test script to use common-llvm.bash.