Look for package.json to determine app root

Currently when given a path to a file such as in
`sl-run path/to/some/app.js` the behaviour is to mimic
`cd path/to/some && node app.js`.

Since normal `npm start` behaviour is to cd into the package's root, it
is desirable to look for the `package.json` nearest to the given app.js
and chdir into that directory, using the original behaviour as a
fallback when not `package.json` can be found.

Given that these paths exist:
path/package.json
path/to/some/app.js

`sl-run path/to/some/app.js` should do `cd path && node to/some/app.js`
test: more explicit argument parsing

Ensure that long paths don't trigger console.log/util.inspect wrapping,
invalidating tests.
Support running app.js as 'sl-run app'

Make sl-run behave more like node by allowing .js file extensions to
be omitted.

Closes #11