Simplify third-party Makefiles.

This is a follow-up to https://github.com/chapel-lang/chapel/pull/1013,
which simplified third-party/gmp/Makefile{,.include}.  That passed
nightly testing last night, so now we're doing the other third-party
packages.

First, in Makefile.include (or for llvm, Makefile,share), change the
ordering of the make(1) variable definitions to be generally:

  base and unique build dirs
  build dirs
  install dirs
  source dirs and files, if any
  lib dirs and files, if any

Second, these lines in Makefile were superfluous:

  <pkg>_ABS_DIR = $(shell pwd)
  <pkg>_INSTALL_DIR = $(<pkg>_ABS_DIR)/$(<pkg>_INSTALL_SUBDIR)
  <pkg>_BUILD_DIR = $(<pkg>_ABS_DIR)/$(<pkg>_BUILD_SUBDIR)
  <pkg>_DIR = $(<pkg>_ABS_DIR)

Because <pkg>_ABS_DIR isn't referenced anywhere else, they're equivalent
to:

  <pkg>_DIR = $(shell pwd)
  <pkg>_INSTALL_DIR = $(<pkg>_DIR)/$(<pkg>_INSTALL_SUBDIR)
  <pkg>_BUILD_DIR = $(<pkg>_DIR)/$(<pkg>_BUILD_SUBDIR)

But these latter two definitions of <pkg>_{INSTALL,BUILD}_DIR are
identical to the ones in Makefile.include, which is included here by
virtue of ../../make/Makefile.base being included at the top. So they
can go. And the first definition here is effectively the same as this
one that is already in Makefile.include:

  <pkg>_DIR = $(shell pwd)/../../third-party/qthread

So, it can go as well.

While here, I also got rid of the unreferenced BINUTILS_GOLD_DIR
definition in the llvm Makefile, after checking with the author that
there was no expectation it would be needed in the future.
Update future based on Brad's comments.
Change range's 'by' functions for param strides

We have versions of 'by' that take the stride as a param in order to check at
compile time if the stride was 0 rather than waiting until runtime. However
this means that for all non-zero param strides a new function is stamped out
which adds bloat to the generated code. This just adds a "where step == 0"
clause to the functions so that we still get the compiler time warning without
stamping out a function for valid param steps.
Merge pull request #1025 from lydia-duncan/paramFnFuture

Update future based on Brad's comments.
Merge pull request #1020 from gbtitus/simplify-3p-makefiles-beyond-gmp

Simplify third-party Makefiles.

This is a follow-up to https://github.com/chapel-lang/chapel/pull/1013,
which simplified third-party/gmp/Makefile{,.include}. That passed
nightly testing last night, so now we're doing the other third-party
packages.

First, in Makefile.include (or for llvm, Makefile,share), change the
ordering of the make(1) variable definitions to be generally:

  base and unique build dirs
  build dirs
  install dirs
  source dirs and files, if any
  lib dirs and files, if any

Second, these lines in Makefile were superfluous:

  <pkg>_ABS_DIR = $(shell pwd)
  <pkg>_INSTALL_DIR = $(<pkg>_ABS_DIR)/$(<pkg>_INSTALL_SUBDIR)
  <pkg>_BUILD_DIR = $(<pkg>_ABS_DIR)/$(<pkg>_BUILD_SUBDIR)
  <pkg>_DIR = $(<pkg>_ABS_DIR)

Because <pkg>_ABS_DIR isn't referenced anywhere else, they're equivalent
to:

  <pkg>_DIR = $(shell pwd)
  <pkg>_INSTALL_DIR = $(<pkg>_DIR)/$(<pkg>_INSTALL_SUBDIR)
  <pkg>_BUILD_DIR = $(<pkg>_DIR)/$(<pkg>_BUILD_SUBDIR)

But these latter two definitions of <pkg>_{INSTALL,BUILD}_DIR are
identical to the ones in Makefile.include, which is included here by
virtue of ../../make/Makefile.base being included at the top. So they
can go. And the first definition here is effectively the same as this
one that is already in Makefile.include:

<pkg>_DIR = $(shell pwd)/../../third-party/qthread

So, it can go as well.

While here, I also got rid of the unreferenced BINUTILS_GOLD_DIR
definition in the llvm Makefile, after checking with the author that
there was no expectation it would be needed in the future.
Fixing a typo pointed out by @thomasvandoren
Merge pull request #1028 from bradcray/typeselect-futures

Fixing an innocuous typo

pointed out by @thomasvandoren
Merge pull request #1027 from ronawho/change-range-param-by-funcs

Change range's 'by' functions for param strides

[ok'd /suggested by @bradcray in pr: 1021]

We have versions of 'by' that take the stride as a param in order to check at
compile time if the stride was 0 rather than waiting until runtime. However
this means that for all non-zero param strides a new function is stamped out
which adds bloat to the generated code. This just adds a "where step == 0"
clause to the functions so that we still get the compiler time warning without
stamping out a function for valid param steps.