Improve and document TravisCI configuration

* Add Travis to README.
* Color the RSpec output.
* Create Postgres database.
* Set up xvfb for Capybara Webkit.
* Turn off email notifications.
* Remove unnecessary `ruby-` prefix to Ruby version.
* Use consistent formatting.
Add `bin/setup` for contributors

* Use `mkdir .git/safe` convention in `bin/setup`.
  https://github.com/thoughtbot/suspenders/commit/2ec7108
* Add missing `rake` binstub to version control.
* Update and improve `CONTRIBUTING.md`.
shoulda-matchers spring compatibility.

Changed Gemfile and spec_helper according to the shoulda-matchers
documentation:

Gemfile:

group :test do
  gem 'shoulda-matchers', require: false
end

spec_helper:

require 'rspec/rails'
require 'shoulda/matchers'u
Connect to Postgres on localhost

* Most installs listen on localhost
* Many installs do not listen on a socket
* This fixes connection errors for many users
Move SMTP variable settings out of initializer

Since we require the `smtp.rb` file in the environment files, and Rails loads it
as part of its boot process, this file was loaded twice. This causes a constant
reinitialization warning.

Also, to remove the duplicaton, there is no need to check the environment,
since we require the files from the appropriate environment files.

Fixes #335
Maintain ActiveRecord test schema

* Add ActiveRecord::Migration.maintain_test_schema! to rspec template
Unify Ruby version for gem and suspended apps

    One Ruby to rule them all, One Ruby to find them,
    One Ruby to bring them all and in the light bind them
    In the Land of .ruby-version where the Fluorescents lie.

When creating new apps, there is little reason to use an older version
of Ruby than the most recent. For most use cases, having the latest
version is going to be the best approach.

* Move Ruby version to .ruby-version for gem
* Read this file into Suspenders::RUBY_VERSION
* Use Suspenders::RUBY_VERSION everywhere we need it, such as the
* Gemfile and generated Travis config.
* Update README documentation about Ruby and Rails versions.
* Add color to Travis output.

This is based on a conversation with @derekprior and @mrgilman.
Escape Erb in secrets.yml

Fixes issue where `secret_key_base` in `config/secrets.yml` was blank,
missing `<%= ENV['SECRET_KEY_BASE'] %>`.

Fixes #340
Set up Segment.io by default

In order to analyze metrics later, we need to instrument our app to log
the right metrics. The primary type of instrumentation we care about is
called "event tracking."

We ese Segment.io to capture events whenever possible. It is basically
the adapter pattern for analytics services.

Segment.io lets us drop one JS library into our web apps, or one Ruby
library into our server-side framework, or one iOS SDK into our mobile
apps. Then, we can toggle on and off different services such as Google
Analytics, Intercom, and others.

http://playbook.thoughtbot.com/#instrumentation

If we are working on an app that uses authentication through a library
such as Clearance, we should add the following to
`app/views/application/_analytics.html.erb`:

    <% if signed_in? %>
      <%= render 'signed_in_analytics' %>
    <% end %>

https://github.com/thoughtbot/clearance

At that time, we should also add
`app/views/application/_signed_in_analytics.html.erb`:

    <script type="text/javascript">
      analytics.identify("#{current_user.id}", {
        created : "#{current_user.created_at}",
        email : "#{current_user.email}"
      }, {
        Intercom : {
          userHash : "#{OpenSSL::HMAC.hexdigest('sha256',
    ENV['INTERCOM_API_SECRET'], current_user.id.to_s)}"
        }
      });
    </script>

The most likely first signed in service we'll want is Intercom. It plays
two important roles for an early stage product:

1. communication (and support) with customers and
2. measuring retention (such as Weekly Active Users)

https://intercom.io