Expand on the configurability of "unused"

This allows users to control what level of check to do for unused variables.  The options are:
* false: No checking is done
* true: "vars" + last function param only
* "vars": Variables and functions are checked, but not function params
* "strict": "vars" + function params

Example:

    function foo(a, b) {
		return b;
	}

If 'unused' === true, no warnings will be thrown, since 'b' is used.

If 'unused' === 'strict', then a warning will be thrown, since 'a' is not used.

References:
* Makes GH-607 the default, but optional, rather than mandatory
* Closes GH-778
Removed duplicated information from README and ticket rule from CONTRIBUTING
Merge branch 'master' of github.com:jshint/jshint
Merge branch 'master' of git://github.com/mbulman/jshint into mbulman-master
Fix stylistic issues in 1cca4c2848fb9745fd333819d57b844bb8145d97
Don't warn about octals in strings on \0
Remove support for single-line special comments (except for //jshint)

Single-line special comments make more harm than good. Closes GH-881.
Treat FutureReservedWords as identifiers in the ES5 environments.

This fixes a bug where unused would report false positives on variables
like `char`.
Ignore W001 in vars.js
Bump the version and hard-code all dependencies
Add 'unnecessary' to escaping message to make it clearer.
Allow reserved words as property names in objects followed by commas, fixes #768
Merge pull request #897 from Buritica/fix-es5-reserved

Allow reserved words as property names in objects followed by commas
Merge pull request #896 from mattflaschen/badOrUnnecessary

Add 'unnecessary' to escaping message to make it clearer.
Change Esprima dependency to use HTTP (NPM issues)

See GH-893.
Make sure the right side of a paren exists before checking its ID.

Closes GH-900.