Issue title: use jshint to check complexity
 Issue body: jshint has a `maxcomplexity` option that we could use to find overly-complex methods. 

It uses this measure: http://en.wikipedia.org/wiki/Cyclomatic_complexity

 Comments: 
 Comment 0: For the curious kids in the classroom... http://www.elijahmanor.com/control-the-complexity-of-your-javascript-functions-with-jshint/ does a good job of explaining it:

> _You might be wondering what a reasonable `maxcomplexity` value is for your project. In the 2nd edition of [Steve McConnell's Code Complete](http://www.amazon.com/Code-Complete-Developer-Best-Practices-ebook/dp/B00JDMPOSY/) he recommends that a cyclomatic complexity from **0 to 5 is typically fine**, but you should **be aware if the complexity starts to get in the 6 to 10 range**. He further explains that **anything over a complexity of *10* you should strongly consider refactoring your code**._

I set the `maxcomplexity` to 6 in [.jshintrc](https://github.com/mozilla/fxa-content-server/blob/master/.jshintrc) and [app/.jshintrc](https://github.com/mozilla/fxa-content-server/blob/master/app/.jshintrc) and here was the JSHint output:

```
$ grunt jshint --force
Running "jshint:grunt" (jshint) task

✔ No problems


Running "jshint:app" (jshint) task

app/scripts/lib/cropper.js
  line 26  col 20  This function's cyclomatic complexity is too high. (7)

app/scripts/lib/metrics.js
  line 53  col 20  This function's cyclomatic complexity is too high. (17)

app/scripts/lib/screen-info.js
  line 13  col 22  This function's cyclomatic complexity is too high. (8)

app/scripts/views/base.js
  line 90  col 27  This function's cyclomatic complexity is too high. (10)

app/tests/spec/lib/assertion.js
  line 83  col 67  This function's cyclomatic complexity is too high. (7)

app/tests/spec/views/sign_up.js
  line 34  col 26  This function's cyclomatic complexity is too high. (10)

✖ 6 problems

Warning: Task "jshint:app" failed. Used --force, continuing.

Running "jshint:tests" (jshint) task

tests/intern.js
  line 13  col 10  This function's cyclomatic complexity is too high. (9)

✖ 1 problem

Warning: Task "jshint:tests" failed. Used --force, continuing.

Done, but with warnings.
```

Unrelated, but some other interesting params are:
- [`maxparams`](http://jshint.com/docs/options/#maxparams) &mdash; This option lets you set the max number of formal parameters allowed per function.
- [`maxdepth`](http://jshint.com/docs/options/#maxdepth) &mdash; This option lets you control how nested do you want your blocks to be.
- [`maxstatements`](http://jshint.com/docs/options/#maxstatements) &mdash; This option lets you set the max number of statements allowed per function. 
 Comment 1: Another tool we can consider is https://codeclimate.com/. They perform several types of static analysis, and like travis, integrate nicely with GitHub PRs.

 Comment 2: Ah, it's free for open source too.
 Comment 3: Hi zaach! could you please have a look to my pull request?
Thanx

{'source': 'GithubIssues', 'repo_name_with_owner': 'mozilla/fxa-content-server', 'issue_id': 59308223, 'repo_stars': 165.0}