Implement symbolic constants

Symbolic constants like icmp-echoreply et al are not currently supported, and should be implemented.

Note that there are two kinds of symbolic constant, AIUI: symbolic constants in arithmetic expressions, where they just evaluate to a value, and symbolic constants in logical operators, e.g. port http.  Perhaps symbolic constants are only valid in some operators (like "port").  Some investigation is needed.
does this accept floating-point numbers?  it shouldn't, of course.  perhaps add a tointeger(str, min, max) helper function.