improve static detection of module dependencies

Additional cases that we now handle:

Mixed dynamic & static module expressions:
  require([someExpr, 'modname'])

Inline requires that begin a dynamic expression:
  require('mod').someFunction();

Traversing toplevel function arguments:
  someFunction(require('mod'), ...);