[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.
This seems like very strange code -- usually you'd only use this if you need the return value, but it's not being used?

why not just

```python
filename = "{name}.cpp".format(name=name)
if os.path.exists(filename):
   os.remove(filename)
```

for example. (Yes, you'll see that I also replaced the old-style `%s -based printing to the new-style `s.format()` version).