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
Merge pull request #269 from michaelficarra/GH-268

fixes #268: Fix `no-empty-class` false negatives