Tweaks to StepRange: Take 2
Refactoring of folding functions: `foldl`, `foldr`, `mapfoldl`, and `mapfoldr`
Merge branch 'master' into dh/reduce3
test mapfoldl and mapfoldr + a bug fix to mapfoldr
move mapreduce functions above
generalize mapreduce (still need some tweaking ...)
fix a bug of mapreduce
reduce implemented based on new mapreduce
sum functions implemented based on new mapreduce
prod functions implemented based on new mapreduce
maximum/minimum functions implemented based on new mapreduce
move and/all codes above
reorganize tests for reduce
and, or, count reimplemented using new paradigm
tweak extrema
a small fix of mapreduce function signature
readdlm has_header is now header, skipstart added

fixes #6869
- `header` takes a boolean value and behaves like `has_header` or DataFrames `header` option.
- `skipstart` takes a positive integer value and behaves like DataFrames `skipstart` option.
small fix to extrema, now it correctly handles [NaN, ....]
Improvements to regex performance.
Remove trailing whitespace