Refactor env.log().

Clearly mark the three configurable bits which future patches will modify
(ie, how to do the logging, when to announce location, when to include
or generate stack traces).

Allow an arbitrary number of arguments to log().

Use a `flatten` helper which uses util.inspect to format object
parameters, as console.log does.  The `flatten` function also pulls
out stack traces, if present on functions, objects, or Errors.  We
then use a general method for adding or generating a stack trace
if/when one is desired for the particular log instance.

Change-Id: I106a79620da7eae888a89917ecefd569862760dc