flake8: hardcode version and dependencies

Fix flake8 upgrades introducing new style errors. See, e.g.,

https://travis-ci.org/uwescience/datalogcompiler/builds/21629661
Add min (least) and max (greatest) expressions
var-ary greatest and least functions,add general support for var-ary functions
PEP8
add greater and lesser functions
Move check to a sensible place
Make lookups in expressions library case insensitive. Fixes #166
Typo
implement NaryFunction
add substr(str, begin, end) function.
add `len(str)` function.
add head and tail function.
use LESSER and GREATER to simplify the head and tail function
Add operator id, make operator name human readable
rename opID to opId
Merge pull request #163 from uwescience/hardcode-flake8-version

flake8: hardcode version and dependencies
Merge pull request #169 from uwescience/domoritz-json-format

Change JSON format
clean test query.
Merge branch 'master' into domoritz-min-max
expressions_library: refactor with reduce

See https://github.com/uwescience/datalogcompiler/pull/164#commitcomment-5986637