Lift restriction on underscores in unames

Also allows apostrophes.

The only trick here is we need to keep the restriction on module names, due to CommonJS module naming. I did a quick review of the rest of the parser and didn't find anywhere else that module names were parsed as normal unames.  Requested by @jutaro.