Added checking for single strings within eval-style statements

This is currently checking "eval", "setTimeout" and "setInterval".
Support for other types of eval is coming.

It works by looking for statements which contain just a string.
In that case, the string is put onto a list, and all of the strings
are checked at the end.
Added a check for window.setTimeout containing syntax errors
Fix the eval code to work properly in the case of multiple eval()s
Proper unit tests for the deep-eval() checks
Comment for window.setTimeout check
Renamed function 'internal' to 'addInternalSrc'

It's a bit clearer now.
Added new options maxstatementsperfunction, maxnestedblockdepthperfunction and maxparametersperfunction
Added new option maxcyclomaticcomplexitysperfunction
Fixed type for new option  maxcyclomaticcomplexitysperfunction ->maxcyclomaticcomplexityperfunction
Made the option names maxstatementsperfunction, maxnestedblockdepthperfunction, maxparametersperfunction and maxcyclomaticcomplexityperfunction shorter by removing the suffix 'perfunction'
Renamed options: maxparameters -> maxparams, maxnestedblockdepth -> maxdepth and maxcyclomaticcomplexity -> maxcomplexity
Fix character position for dot notation warning
Fix character and evidence for nonew
Fix do not use {a} as constructor, and adds test
Fix radix character, adds test
Merge pull request #608 from goatslacker/char

Fix character positions.

This patch fixes character positions reported by JSHint
in its warnings. Useful for fixmyjs and other programs
that rely on such data.
Set default value for 'lines' on each run.

JSHint has a lot of state variables that are shared between runs.
We need to re-assign default values to some of them on each run
so that they don't screw up anything.

One particular bug (GH-615) happened because 'warning' needed
a variable named 'lines' that was not defined yet. Tests didn't
catch that bug because there 'lines' was defined in previous
test cases (no isolation in our testing framework whatsoever).

Fixes GH-615.
Make JSHINT.data().unused be consistent with option.unused

JSHINT.data().unused is a legacy array that were kind of broken.
Lots of warnings were pointing to the parent function and generated
lots of false positives.

This patch makes option.unused to populate that array meaning
that JSHINT.errors and JSHINT.data().unused will have the same data
when it comes to unused variables.

This patch removes one property from JSHINT.data().unused so
scripts may break.

Fixes GH-610.
Make 'unused' check smarter about unused arguments.

This patch modifies 'unused' checks so that they ignore arguments
that were never used but that were followed by used arguments. For
example:

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

In this example, since unused 'a' is followed by used 'b', JSHint
assumes that this is a backwards compatibility issue or a specific
API pattern and suppresses the warning.

But this example, on the other hand, will generate a warning for 'b'
because there is no reason to keep it around:

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

References:

    Closes GH-607
Add support for parens outside of IIFE.

This patch simply removes a nitpicking warning about whether one
should put parens on the inside of IIFE or the outside.

Closes GH-470