Basic translation of OptionApply

- Execution works. For now, using a TypeMapping. This should be replaced
  with something more efficient.

- Product node expansion doesn’t yet enforce nullability of the
  individual columns. I’m not sure how to do it yet because we have to
  run before columnization.

- All test case ASTs can be constructed, a few are even executed.