Fix problems with LLVM compilation

 - extern functions with by-value structures
 - extern functions with tuples
Add test case for extern record byval
Migrate #defines to static inline to work with LLVM

The LLVM backend can't handle using macros that
are complicated, so we use static inline functions
instead. One day it will work with macros...
Add skipifs for tests relying on C backend
Merge remote-tracking branch 'upstream/master' into llvm-fixes-6
Add some (debugging) asserts for LLVM
Fix problem with convertValueToType force

I had gone too far in making it more conservative...
Add an example of using the targetLocales method on arrays
Temporary workaround for --llvm errors about S_IRWXU

Here we just disable the error... You'll get a different
error if we try to use these.
Make change suggested by Greg in review.

This add a check to see if we need to create a parent directory and returns
the first error we find that is either mkdir generated, or found by stat but not
a "file or directory does not exist".
A comment was out of date.
Eliminate a duplicate ugly error upon 'myNonRefIter() = 2;'
git-added a file missed before
Adding perf annotations for tcmalloc as default
Also squash .bad file lines containing the phrase "In file included from".
Also update .bad file with "In file included from" lines removed.
Merge pull request #421 from hildeth/squashCLineNumbers

Squash .bad file lines containing "In file included from" in genericArrayInClass-otharrs-inline-iterators.
Rework chpl_getNum{Cores,PUs}OnThisNode().

This standardizes naming, making the following changes:
  chpl_getNumCoresOnThisNode() --> chpl_getNumPhysCpusOnThisNode()
  chpl_getNumPUsOnThisNode() --> chpl_getNumLogCpusOnThisNode()

It also adds an argument to both of these, for callers to indicate
whether they want information about all the CPU resources that are
present on the node, or only the ones to which the process has access
(due to kernel affinity restrictions, etc.).

I ran the maxTaskPar test on this change with CHPL_TASKS=qthreads,
CHPL_TASKS=qthreads and CHPL_LOCALE_MODEL=numa, CHPL_TASKS=fifo,
CHPL_TASKS=massivethreads, and CHPL_TASKS=muxed.
Update .bad file for test_distribution_syntax2
Merge pull request #402 from lydia-duncan/mkdir

Take Greg's comment on mkdir into account [reviewed by gbtitus]

This adds a check to see if we need to create a parent directory and returns
the first error we find that is either mkdir generated, or found by stat but not
a "file or directory does not exist" error (which we would've solved by calling
mkdir afterwards).