Make struct automata definitions more abstract.

Hide away the details of functions that return boolean values (which might actually become integers in the future for the sake of the kernel).
Hook up the new TCP header.

This actually exercises the syntax checking, ensuring we don't break it. No semantic analysis yet, but that doesn't break the build.