Update demo/plc to work with current Fan.
No (deliberate) functional changes.

Changes to make code compile:
  removed many trailing ';'s
  changed many '[' ... | ... ']' to '|' ... | .. (in fun, match, etc)
  changed many list 'a to 'a list (and option)
  changed many '[x::xs]' to '(x::xs)' (which seemed the right thing but is clearly different)

Changes caused by Fan changed:
  {:xxx| .. |} changed to %xxx{...}
  OPT changed to ?
  x{y} to x as y
  $(..) to %{..}
  -> (in rules) to nothing
  $list: to ${xx_of_list ..}
  String -> Stringf
  LocUtil -> Locf
  Gram -> Gramf
  Fan.Syntax.Options to Foptions
  FanArg to Arg

Nasties:
  PlParser: 69 handling of Integer is probably not right
  PlParser: 84 had trouble getting Fan to accept this
  PlParser: 98 do I want to call this here?  I thought ye
  PlTranslate: 163-167 or_of_list should be in Ast_gen
  PlTranslate: 184-188 is much worse
  PlTranslate: 600-612 had trouble with types