Replacing fail keyword part 2 of 3

Issue # 4524.  Part 2 of removing fail: remove fail from lexer & parser, all remaining invocations of fail, and redefine die! as fail! for the snapshot compiler.

review? @brson