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 #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.
Merge branch 'master' into elim-anonymous-range-construction

Conflicts:
	modules/internal/ChapelRange.chpl

Merge in change to ChapelRange.chpl that modified the param versions of 'by' to
use where clauses instead of conditionals inside of the body to eliminate
stamping out a function for each valid param stride. This branch originally
removed the param by's but brad thought (and I agree) that it's nice to get the
warnings at compile time so long as we don't have the bloat for each valid
param by.