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.
Adding perf annotations for tcmalloc as default
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.
Merge branch 'master' of github.com:chapel-lang/chapel into dist-primer-lsq
Merge pull request #425 from bradcray/filerator

Remove a stray semicolon from walk.execopts

This caused testing to fail in any configurations that added additional
execution time flags... ugh.
Change the function names again.

This time it's:
chpl_getNumPhysCpusOnThisNode() --> chpl_getNumPhysicalCpus()
chpl_getNumLogCpusOnThisNode() --> chpl_getNumLogicalCpus().
Adding exampels for the 'localSubdomain(s)' functions
Merge pull request #424 from benharsh/annotations

Adding annotations to the perf graphs for the time periods where tcmalloc was the default allocator during nightly testing.
Merge pull request #422 from gbtitus/logical-physical-cpus

Rework chpl_getNum{Cores,PUs}OnThisNode().

This standardizes naming, making the following changes:
chpl_getNumCoresOnThisNode() --> chpl_getNumPhysicalCpus()
chpl_getNumPUsOnThisNode() --> chpl_getNumLogicalCpus()

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.
Write our own versions of op= for associative domain set operations instead of relying on the default ones
Add a test for domains with no overlapping indices
Symbolic CHPL_RT_NUM_THREADS_PER_LOCALE values: MAX_PHYSICAL and MAX_LOGICAL.

Add support for two symbolic values for CHPL_RT_NUM_THREADS_PER_LOCALE:
'MAX_PHYSICAL' and 'MAX_LOGICAL'.  These will be interpreted as the
number of physical and logical CPU instances available to the program,
respectively.  Also, add unit tests for these values and as part of
this, introduce a new section of tests/ to contain runtime-specific
tests.