Preserve uint32 range in arithmetic ops

* src/pf/codegen.lua (read_buffer_word_by_type): Load words as uint32,
  not int32.
* src/pf/expand.lua (expand_arith): Add mod-32 around arithmetic ops
  that can produce out-of-uint32-range values.
Range inference over all arithmetic exps can remove modulos

* src/pf/expand.lua: Add assertion to / and % that RHS is not 0.

* src/pf/optimize.lua (binops): Remove || and &&; they are not present.
  (Range): New helper class.
  (infer_ranges): Infer ranges for all kinds of arithmetic expressions,
  not just packet access.  Elide unneeded modulo expressions.
Merge branch 'uint32'