NAT
static: implement create_static more efficiently

The previous implementation of create_static was just a thin wrapper
around create, which kept the update and pkt_out pipes open even though
the app would never generate an update or a packet out. The new
implementation uses the lower-level raw_app API to construct the app and
in the process closes the update and pkt_out pipes.
static: implement guard in terms of create_static

The new implementation of create_static achieves the same goals as the
custom implementation of guard. Removing the custom guard implementation
in favor of having fewer combinators implemented at the raw_app level.
Bugfix to syntax extension

EOF production is needed. Added + and filter as keywords.
predicates in qq
Merge pull request #327 from frenetic-lang/syntax

Syntax
Merge pull request #323 from frenetic-lang/static

Improve implementations of create_static and guard.
Fix issues from seliopou's review
Merge branch 'NAT'

Conflicts:
	_tags
	async/async.mldylib
	lib/netkat.mldylib
	myocamlbuild.ml
	setup.ml
cleanup: remove netkat_test

The policy it generates is not a valid policy (it uses tokens such as
'->' for assignment). In addition it can easily be replaced by a static
policy.
Merge pull request #333 from frenetic-lang/cleanup

cleanup: remove netkat_test
pipe_pred: do not compile policies with pipes in preds

The way that the LocalCompiler generated flowtables when pipes appeared
in predicates broke the NetKAT laws, specifically ka-plus-comm which you
can see on build 706 on travis-ci. The LocalCompiler now fails if it
encounters a pipe in a predicate, and the quickcheck arbitrary instance
for predicates has been changed to not include pipe locations.
Merge pull request #334 from frenetic-lang/pipe_pred

pipe_pred: do not compile policies with pipes in preds
sw_id: Use new ocaml-openflow runtime API

The new API eliminates the need for the Txn module, as that's now baked
in.