adding backtracking to type checker

- extended ETcErr to contain an optional retry statement to help
  alleviate an error. i stuff unfolds, folds, and heap casts to
  lvalues (variables x and object reads x.path) in here, which
  get tried before the innermost failing statement. scalar casts
  are also hoisted out, which avoids some redundant casts.

- added [...] concrete syntax (ETcInsert and STcInsert) to surround
  things inserted by the type checker. when parsed, these get
  discarded by subsequent translation phase. programmer can remove
  the brackets if desired.