Kleene axioms

We have QuickCheck tests for all of the Kleene axioms, for both eval and the local compiler.

Apparently while I was writing this, a lot of other things got modified. I had to change my `NetKAT_Arbitrary.arbitrary_tcp` function because the types of all the headers changed (most went from `'a option` to `'a`). I also added `of_policy` back into the `LocalCompiler` mli so I could call it. I'm not sure if there's something better I should be doing there.