Fix: Error severity for rules with options.

This fixes an issue where rules that accept options would be unable to report an error severity.

As the TODO has and continues to say, we should refactor how we get error severity in the formatters.

Fixes #229
Rule: max-depth

Created the `max-depth` rule, which allows the user to specify the maximum depth that blocks can be nested:

// max-depth: [1, 2]  // Maximum of 2 deep.
function foo() {
  for (;;) {
    if (true) {
      if (true) { // Nested 3 deep.

      }
    }
  }
}

This rule matches the *maxdepth* rule for JSHint.
Rule: No Script URL
Merge pull request #233 from iancmyers/fix-severity-for-options

Fix: Error severity for rules with options. (Fixes #229)
Merge pull request #232 from iancmyers/rule-max-depth

Rule: max-depth
Merge pull request #231 from ilyavolodin/no-script-url

Rule: No Script URL (Closes #230)
Rule: no proto
Merge pull request #235 from ilyavolodin/no-proto

Rule: no proto (Closes #234)
Fix no-unused-vars to report correct line numbers
Merge pull request #240 from ilyavolodin/no-unused-vars

Fix no-unused-vars to report correct line numbers (Fixes #239)
Rule: no-else-return

The `no-else-return` rule will warn when it encouters an `else` block following an `if` block which contains a return statement, as that `else` block is unnecessary and its contents could be placed outside of the `else` block.

function foo() {
    if (x) {
        return y;
    } else {
        return z;
    }
}

This rule matches the same rule from JSLint: http://jslinterrors.com/unexpected-else-after-return/
Merge pull request #241 from iancmyers/no-else-return

Rule: no-else-return
rule: max-len to lint maximum length of a line