Fix callback function type warnings in timers.js

Closure compiler produced the following warnings:

timers.js:26: WARNING - Bad type annotation. missing opening (
 * @param {function} callback
                   ^

timers.js:39: WARNING - Bad type annotation. missing opening (
 * @param {function} callback
                   ^

Fix by adding argument types to the callback functions.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
Fix block function type warnings in assert.js

Closure compiler produced the following warnings:

assert.js:117: WARNING - Bad type annotation. missing opening (
 * @param {function} block
                   ^

assert.js:126: WARNING - Bad type annotation. missing opening (
 * @param {function} block
                   ^

Fix by adding argument types to the block functions.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
Fix annotations for optional parameter of multiple types

In several files the optional qualifier "=" was applied to individual
types, rather than at the end of the type expression.  This resulted in
errors of the following form:

WARNING - Bad type annotation. expected closing }
 * @param {number=|string=} offset
                  ^

Fix by moving the "=" to the end of the type expression for all
occurrences.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
Parenthesize multiple-type property types

Several structure types with multiple-type properties lacked parentheses
around the property type, which caused errors such as the following:

child_process.js:79: WARNING - Bad type annotation. expected closing }
 * @typedef {{cwd: string, stdio: Array|string, customFds: Array, env: Object.<string,*>, detached: boolean, uid: number, gid: number, encoding: string, timeout: number, maxBuffer: number, killSignal: string}}
                                       ^

Fix by adding parentheses around the property types.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
Fix typo @fileoverfiew -> @fileoverview

This was causing warnings such as:

crypto.js:18: WARNING - Parse error. illegal use of unknown JSDoc tag "fileoverfiew"; ignoring it
 * @fileoverfiew Definitions for node's crypto module. Depends on the buffer module.
   ^

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
Add missing arguments for function types

Several uses of function types lacked parameters, resulting in errors
such as the following:

assert.js:117: WARNING - Bad type annotation. missing opening (
 * @param {function} block
                   ^
Fix these by adding argument types.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
Fix , and . confusion

Use . for type application and , for multiple type arguments.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
Fix @extend -> @extends in crypto.js

This was causing the following error:

crypto.js:259: WARNING - Parse error. illegal use of unknown JSDoc tag "extend"; ignoring it
 * @extend stream.Writable
   ^

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
Fix multiple @extends in stream.js

It's not possible to @extends two different classes (see
http://code.google.com/p/closure-compiler/issues/detail?id=250).  This
was causing the following error:

stream.js:209: WARNING - Bad type annotation. type annotation incompatible with other annotations
 * @extends stream.Writable
                           ^

From source inspection, Duplex extends Readable and implements Writable.
Update the annotations to reflect this.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
Merge pull request #1 from kevinoid/fix-some-verbose-warnings

Fix some of the warning messages produced at verbose warning level