Allow ! in identifiers, escape quotes in ` expansion.
Updated to give language-level support for events.