First pass, very dirty refactoring

- Start using channels for stuff. Still not totally sure I'm using
  channels correctly, so this will need some looking into soon.

- Totally removed RAFLens.

- Now what was <RAFExtract> is only being used to provide type-safe
  casts from model protocols to their primitive equivalents. So we can
  call it <RAFCast>.

- All table forms must be provided with explicit sections. It's not
  really sane to try to infer these from the form's structure.