Try harder to produce accurate source locations for async calls.

This changes the position generated for a call of the form `a.b()` to point to the `b`; this makes chained calls like `a.b().c().d()` a little clearer (plus the previous code that tried to find the column number would fall over for calls spanning multiple lines).

Also, don't blow up if no line number can be found in the input source map. This fixes an issue that we hit with the latest `source-map` version (0.1.33), where it would return no source position (where it did previously), causing an incorrect node to be generated.