core: refactor err messages and make existentials for spec holes
core: split out separate LamT and LamX checker modules
core: split AppT and AppX checkers into separate modules