refactor the ugliness that was And() with liberal iterator use.

I even followed the unfinalized JS6 iterator spec
 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function
This was tedious, but worth it. It will make Not() and Or() a lot easier.
Not operator.