JSDoc
Gets and sets base directory. Used for relative pathing (typically where a glob starts).
When `null` or `undefined`, it simply proxies the `file.cwd` property. Will always be
normalized and have trailing separators removed.
Throws when set to any value other than non-empty strings or `null`/`undefined`.
The setter's type is actually `string | null | undefined`, but TypeScript doesn't allow
get/set accessors to be of different type. The property is declared as `string` for the
compiler not to require useless null checks for the getter. (Hopefully, noone will need
to assign `null` to this property.)