delint; cleanup
improve dumper module and global dump function (#811)

- Fixed an issue in the dumper module that caused non-circular references between objects to be treated as circular references. For example, in an array of objects A and B, if B.a refers to A, the value of B.a can now be dumped.
- The dumper module is now much faster when the built-in class `Set` is not available.
- The global dump function is now much faster and is less likely to dump the value `<CircularRef>`.
don't overwrite the `classdesc` tag's value when the `class` and `constructor` tags are also present (#806)
enable lint-checking for tests; delint/cleanup tests
fix dumper issue when `Set` is available (#811)
remove useless function
Merge upstream branch 'jsdoc/master'

Conflicts:
	test/specs/jsdoc/util/templateHelper.js
	test/specs/tags/accesstag.js