Move mode bits from JsEntry to Path, add Path.abs()

* Moved the file mode related declarations from JsEntry to Path so
they can be used outside of the scope of a js filesystem.

* Added Path.abs() utility method.
Fix suffixList references, return rootDirectory stat by default

* Fix references to the old "pathList" property of a resolve result.

* Make stat() return the stat of the file system's root directory if
  the path parameter is missing.
Assume JsExecutable callbacks will return a promise.

* Change the contract for executable callbacks to require them to
  return a promise.
* Add a callPromise() method to the execute context that returns
  a promise as well.  (The existing call() method still returns the
  new callee's execute context, in case you need it for stdio, etc).
path.js: fix seekable mode bit.
bindings/base.js: Check if a value is an object before using 'in'

* This would cause axiome_shell to wedge at startup if a promise failed
  with a non-object result.
Always return a promise from stat()

The JsEntry classes have a stat() method that's used like the
stat() method from the FileSystemBinding, except it returned a
value rather than a Promise.  This caused issues for
JsFileSystem.list, which needs to be able to stat filesystems as
well as js entries.