Switch web server from Thin to Unicorn

As the Rails application scales to more Heroku dynos, a lack of
concurrency can result in [poor performance](1) and an over-provisioning
of resources. Modifying the app to handle requests more efficiently is
a simple process with immediate benefits.

Unicorn is a [concurrent web server](2) that spawns several processes
within a single dyno without requiring concurrency or threading
awareness in your app.  Applications that migrate to Unicorn often
require fewer dynos and see increased performance.

The [config/unicorn.rb file](3) specifies the number of concurrent web
processes to run on each dyno as well as the proper forking and
termination behavior.

[1] https://blog.heroku.com/archives/2013/2/16/routing_performance_update
[2] https://blog.heroku.com/archives/2013/2/27/unicorn_rails
[3] https://devcenter.heroku.com/articles/rails-unicorn#adding-unicorn-to-your-application
Clean up Gemfile and gemspec

* Use secure RubyGems.org URL.
* Use semantic versioning on minor versions of dependencies.
* Upgrade dependencies.
Set up database before setting up RSpec

Fixes https://github.com/thoughtbot/suspenders/issues/169
Add Delayed::Job

* Use style-guide-appropriate database migration.
* Configure RSpec request specs to run jobs immediately.
* Run `Delayed::Job` workers via the `Procfile`.
* Ensure delay_jobs is reset when example fails.
Fix ActionMailer delivery method configuration

The `delivery_method` configuration line was being appended to an
existing line (which was a comment, thus no error).
Configure strong_parameters to raise in development

This brings the behavior inline with the the attr_accessible mass
assignment protection behavior in 3.2 and can help save some serious
head scratching when an action isn't working as you'd expect.
Enforce Ruby 1.9.2+ in the gemspec
Bump to 1.3.0
Fix mailer configuration
Upgrade to Aruba 0.5.2

Aruba 0.5.1 fails on Windows.
Fixed in cucumber/aruba@d5d2517
Replace custom email validator with gem
Abort RSpec runs on first failure

* Add config.fail_fast = true to spec_helper.
* Move generators config out of RSpec config method.
Upgrade to Rails 4

* Manually create .gitkeep directories. The
  `empty_directory_with_gitkeep` method is removed in Railties 4.
* Remove custom strong_parameters gem. Rails 4 includes it by default.
* Fix syntax. Syntastic reported an issue with some regular expressions.
Use New Relic RPM gem >= 3.5.7 for Heroku accuracy

http://blog.newrelic.com/2013/02/21/using-new-relic-on-heroku-read-how-our-new-ruby-agent-measures-queue-time/
Update Rails version in README.md
Test factory only if it responds to valid?

Allow Factory Girl to be used for non-ActiveRecord objects:

    FactoryGirl.define do
      factory :bundle, class: Hash do
        initialize_with do
          { test: :fail }
        end
      end
    end
Generators don't generate request or routing specs

These specs are better written manually as-needed or tested implictly
via other specs.
Add missing newlines to end of files

This causes GitHub to show a warning in the diff. A newline is added by
default when using Vim, so the file would be changed by simply opening
the file and saving. Neither are ideal.

Hat tip @salbertson
Remove jQuery UI

Only 40% of our recent projects have been including jQuery UI.

The intention of Suspenders is that we're including dependencies only if
we find ourselves using it on just about every thoughtbot project.
Serve static assets, log to STDOUT in staging/prod

The rails_12factor gem currently does two things in staging and
production environments:

* config.serve_static_assets = true
* Logger.new(STDOUT)

Rather than manage the intricacies of how these settings will change in
future versions of Rails, we should rely on the gem.

https://devcenter.heroku.com/articles/rails-integration-gems
https://github.com/heroku/rails_12factor
https://github.com/heroku/rails_serve_static_assets
https://github.com/heroku/rails_stdout_logging