Add CoffeeScript support

* Use [CoffeeLint] to keep to a community-supported open source standard.
* Roll out CoffeeScript to certain GitHub orgs.
* Memoize the HTTP requests.

[CoffeeLint]: http://www.coffeelint.org/
Add flag to enable CoffeeScript

* rename `Null` style guide to `Unsupported`
Handle error where Services team already exists

Error reference:
https://app.getsentry.com/app20126465herokucom/production/group/18233199
Don't check for line presence in the latest commit

This fixes an issue that Hound wound't comment when multiple commits got pushed
to a PR at the same time. As it was, Hound would check if only the head commit
included the line with violation -- resulting in no comment if the violation
came in the previous commit.

Instead, simply check if the violation on the line was previously unreported.
Add account page

* show repo totals
* show a list of billed repos
* refactor external customer data fetching to `PaymentGatewayCustomer`

https://trello.com/c/6AyMCv1t
Re-structure style guide configuration

`.hound.yml` is now used to enable/disable language support and provide the
location of the configuration file.

Example `.hound.yml`:
```yaml
ruby:
  enabled: true
  config_file: .rubocop.yml

coffee_script:
  enabled: true
  config_file: config/coffeelint.json
```

* introduce `RepoConfig` class to handle configuration fetching and parsing
* extract `StyleGuide::Base` for common style guide logic
Support legacy config
Document new configuration setup
Re-factor StyleGuide for ease of type addition

This change makes it easier to understand `StyleGuide::Base` inheritance. The
template method pattern makes it easy to scale style guides to scale
horizontally: just add the new language style guide and inherit off of `Base`.

Changes:
* add `Violations` object to manage unique violations
* refer to modified lines as changed to make it easier to reason about
* introduce `UnchangedLine` class
Allow subscription to be created and deleted without refreshing page

https://trello.com/c/l2vLI2yj/353-address-repos-with-subscriptions-that-weren-t-enabled
Allow non-paying users to unsubscribe

https://trello.com/c/SrdebCDE/345-ensure-that-only-repo-payer-can-disable-it
Add JavaScript support

https://trello.com/c/LQsUqhYU/179-support-javascript

* Use JSHint to review JavaScript code
* Allow users to configure JavaScript style guide
* Use jshintrb gem to easily use JSHint in Ruby
Fix style guides link
Specify indentation preference for JavaScript
Merge pull request #405 from soulcutter/patch-1

Update style guide path.
Fix client/server-side analytics race condition

We are seeing bad analytics data in Mixpanel because
we are not aliasing guests into users.

https://mixpanel.com/docs/integration-libraries/using-mixpanel-alias

Segment.io strongly recommends doing this client-side:

https://segment.io/docs/integrations/mixpanel/#alias

Restrict user-facing flash messages to a known whitelist
so we don't accidentally send `flash[:signed_up]` to the view.

https://trello.com/c/ZzJdRvJu
Update tagline to include JavaScript, CoffeeScript
Use existing webhooks

https://trello.com/c/9I7EgBue/372-fix-subscription-issue

* Subscriptions were failing when webhook already existed, this change
* fixes the issue by using the existing webhook.
Add pull request info to Build model

* add `commit_sha` and `pull_request_number` attibutes
* extract stub helpers in pull_request_spec
* dry up tests
Handle nil violations