[Hackathon PR] Myrial to Clang

Port datalog tests for Clang to MyriaL, and makes them pass.
Clang now supports most of MyriaL, but not yet arbitrary `Sequence`, `DoWhile`, `ScanTemp`, `StoreTemp`

changes to note for review:
* changed parameters in MyriaTestCase and myriad/interpreter.py so that the test case class can be used for any physical algebra
* moved some rules between myrialang.py and rules.py
* added some rules to rules.py

2014-8-27
Now also contains additional features from @TheYorkWei , like writing out to files in clang/grappalang and tests.
assuming it's just `setUp`... I guess I would prefer an `__init__` parameter that is a db factory

`self.db_factory = lambda : raco.fakedb.FakeDatabase()`.

and then in `setUp` you just say

`self.db = self.db_factory()`