scheme: implement __ne__

scheme != scheme should be the same as !(scheme == scheme)
rules: add RemoveNoOpApply that removes no-op Apply

A a rule to remove Apply that have no effect on the tuples they pass. We
add these in order to use PushApply and RemoveUnusedGroupBy, but once
their work is done we we want to remove them.

Use it in MyriaLDTreeAlgebra and also add tests. (Note that many of the
existing tests effectively also test this rule, so I only added a two
trivial tests.)
rules.PushApply: remove TODO
Merge branch 'master' into remove-noop-apply-bug-fixes
Merge pull request #272 from uwescience/remove-noop-apply-bug-fixes

Remove noop apply, plus a bug fixe