fix comment-attachment issue (#638)

The issue in brief: Within an object literal, if a standalone comment was followed by a commented symbol, the symbol's comment would not be attached correctly.

The fix essentially reverts the changes for #565, which are no longer needed thanks to 50cd99fa2fca753fcf7c9ec3ecf70afd47168e94.

The fix also corrects the order in which we walk a MemberExpression's child nodes. Without this correction, comments would not be attached correctly inside CallExpression nodes.
give doclets a longname even if the name is empty (#643)
switch from Grunt to gulp
make several methods chainable
improve test coverage
bump revision; fix "gulp bump" task

note: "gulp bump" currently creates unnecessary whitespace diffs.
create doclets for externals

Fixes a regression introduced by #537.
add tests for external tag
improve test coverage; remove unreachable code; other cleanup
bump revision
fix syntax for modules that export a single constructor (#655)
clean up require() calls, plus some odds and ends

- hoist require() calls into module scope to make them more efficient
- move some constants from jsdoc/doclet to jsdoc/name for sanity, and to break a circular dependency
- in jsdoc/src/astnode, define the node properties all at once
- remove the gratuitous constant for the `undocumented` tag; we only use it once
- remove a bit of dead code
update Underscore.js dependency
abolish the post-install script and template/plugin copying (#519, #612)

JSDoc has a few requirements that are somewhat unusual for a Node.js app:

1. We need `require('jsdoc/foo')` to work from any module.
2. We need `require('jsdoc/foo')` to work from external code, such as templates and plugins.

Prior to this commit, JSDoc did two separate things to meet these requirements:

1. Use an npm post-install script to create a symlink from `lib/jsdoc` to `node_modules/jsdoc`.
2. When a user runs JSDoc, copy templates and plugins into the JSDoc directory.

These fixes worked, sort of. But they also caused numerous issues with file permissions, especially on Windows.

We now use the Requizzle module, which hacks the Node.js module system to support JSDoc's use cases. There's no longer a post-install script, and there's no need for a symlink in `node_modules`.
strip comments from the JSON config file (#660)
work around Requizzle bug (#662)
update Catharsis so type unions without parens can be parsed (#644)
add ESLint to gitignore
update Requizzle; remove workaround for `jsdoc/package` require issue (#662)
allow external templates/plugins to require() things in node_modules (#665)