algebra: make DoWhile its own operator

Not a subclass of Sequence, it's a different thing.
myrial.interpreter: pass the physical plan instead of the plan tuple

fixes issues with fraudulent parallels getting appended to the top
myrialang: compile DoWhile

Includes minor refactoring to the serialization of relation key
enable json for pagerank and sigmaclipping

Also fix the evaluation semantics of DoWhile
myrialang: remove unused code w.r.t. setting schema

Andrew has this worked out, and it was causing funky bugs in the website.
examples: update sigma-clipping-v0.myl
DistributedGroupBy: reuse partial aggregates when possible
test that different local aggregates are actually different

Since we're somewhat sparse about implementing __eq__, I got worried...
but we passed.
Merge pull request #243 from uwescience/do-while

Do while
Merge remote-tracking branch 'origin/master' into andrew_standalone

Conflicts:
	raco/fakedb.py