Fix `no-empty-class` false negatives

This fixes several false negatives when attempting to catch empty character classes in regular expressions, like so:

var foo = /\[[]/;

A more robust approach was taken in parsing the regular expression, which loosely follows the algorithm that JSLint uses for a similar purpose.

Fixes #267
simplify no-empty-class rule
Added documentation for the `no-bitwise` rule
Added documentation for the `no-caller` rule
Added documentation for the `no-eval` rule
Added documentation for the `no-new` rule
Rule No use before define
Fixing type in guard-for-in documentation
Merge pull request #269 from michaelficarra/GH-268

fixes #268: Fix `no-empty-class` false negatives
Merge pull request #271 from iancmyers/documentation

Added documentation for 4 rules
Merge pull request #273 from ilyavolodin/no-use-before-define

Rule No use before define (Closes #272)
Merge pull request #274 from ilyavolodin/documentation

Fixing typo in guard-for-in documentation
Rule: no-iterator

The `no-iterator` rule disallows the use of the `__iterator__` property. The `__iterator__` property is not supported in many browsers and should be used with caution.

Foo.prototype.__iterator__ = function() {
    return new FooIterator(this);
}

This rule matches the *iterator* rule in JS(H|L)int.
Merge pull request #275 from iancmyers/rule-no-iterator

Rule: no-iterator