Track funnel events with Segment.io

* Base approach on http://robots.thoughtbot.com/segment-io-and-ruby.
* Add `utm_` campaigns as properties on user creation so cohort analysis can be
  done on a per-campaign basis later on.
* Use special Segment.io `revenue` property and special `campaign` context.
  https://segment.io/docs/tracking-api/track/
* Ignore Redis backup dump file.

https://trello.com/c/gwFd8KCN
Configure Segment.io Ruby gem
Improve configuration of Segment.io gem
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