Upgrade to Rails 4.1.5

* upgrade to RSpec 3
* upgrade to Capybara 2.4.1
* upgrade to capybara-webkit 1.3.0
* use new RSpec 3 syntax for message stubbing
Fix revenue analytics

* Use negative values for unsubscribes.
* Only send revenue data for subscribes and unsubscribes.
Upgrade RuboCop to 0.25.0

* remove previously added temporary config hack from tests
* enable [`InlineComment`](https://github.com/bbatsov/rubocop/commit/5bc723b447fe2fe04691f3cd2da643a2a8d059a1) cop
Add tests for spaces after required keyword args
Rescue potential problems with custom config

User errors in custom config file were causing the build to fail. This will
notify us of the problem, and still let the build run.

Example Sentry error:
https://app.getsentry.com/app20126465herokucom/production/group/28942386
Fix AngularJS syntax and bump Capybara wait time

* Capybara default wait time got decreased to 2 secs, we want to be atleast 4
Disable comment rule

https://github.com/thoughtbot/hound/issues/370
Return blank when file content request has problems

This addresses this issue: https://app.getsentry.com/app20126465herokucom/production/group/29003068
Introduce attr_extras

* Reduces boilerplate for simple Ruby objects
* Encourages good initializer practices (just initialize)
* Makes it easy to make immutable value objects

http://rubydoc.info/gems/attr_extras
Rename _filter to _action
Handle invalid YAML config
Refactor Commenter and CommentingPolicy classes

* move related responsibility into `CommentingPolicy` to improve readability flow
* check if message was previously commented on for the changed line
Remove `db:test:prepare` step within testing documentation

`db:test:prepare` has been [removed](https://github.com/rails/rails/pull/13528)
since Rails v4.1 and @mike-burns updated the spec_helper to
automatically maintain the test schema in ff65c6c8. This step is no
longer needed.
Rescue merging with invalid custom config

If custom config contains invalid indentation merging with Hound's default
config will raise an exception:

https://app.getsentry.com/app20126465herokucom/production/group/29978234
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