Adding missing method signatures and fixing incorrect method signatures.

The following missing methods were added:
* fs.readlinkSync
* fs.ftruncate
* fs.ftruncateSync

The following method signatures were fixed:
* path.resolve: Takes an array of arbitrary length. This does not necessarily need to be a string array; resolve skips any non-string elements.
* process.cwd: Returns a string, not void.
Whoops. fd is a *string*, not a *number*.
fs.realpath's cache is an *object literal*, not a string or a boolean.
In fs's truncate functions, 'len' is optional (and defaults to 0).
In many fs functions, mode is optional, which means that the argument that takes its slot becomes the callback.

Adding alternative definitions to account for this.
'mode' can be a number or a string.

I realize this could be considered pedantic, but the typings do not even consistently use one or the other. Previously, certain functions assumed string, others assumed number. This way, you can use either.
Merge pull request #1090 from jvilk/master

Node: Adding missing fs methods + fixing a few method signatures