Fix deprecation about RSpec color mode

I'm seeing this warning:

    RSpec::Core::Configuration#color_enabled= is deprecated. Use
    RSpec::Core::Configuration#color= instead. Called from
    devise-capturable/spec/spec_helper.rb:12:in `block in <top (required)>'.

Update the configuration setting to use the new "color" attr name in
spec_helper.
Fix strategy_spec to stub call to Janrain refresh_token API

The strategy_spec fails with this error:

  1) Devise::Capturable if user does not exist and
     capturable_redirect_if_no_user is enabled should redirect

     Failure/Error: @strategy.authenticate!
     NoMethodError:
       undefined method `capturable_server' for Devise:Module
     # ./lib/devise_capturable/api.rb:22:in `refresh_token'
     # ./lib/devise_capturable/strategy.rb:46:in `authenticate!'
     # ./spec/strategy_spec.rb:79:in `block (4 levels) in <top (required)>'

The problem is not that capturable_server is unconfigured, but that the
API is unstubbed.  Commit b46365df added a call to the refresh_token
API, which and is where this test case starts to fail.

Stub the API call and expect the new redirect target (with refresh
token).
Avoid catch-all rescue and using exceptions for control-flow

The catch-all rescue in lib/devise_capturable/strategy.rb:63 was hiding
the helpful error message in the previous commit message:

    undefined method `capturable_server' for Devise:Module

Rescuing "Exception" seems like a dubious practice in general: helpful
messages might not get propagated when they should, and many Exceptions
that do not inherit from StandardError cannot be meaningfully handled
anyway.

There is only one example that relies on this behavior in the spec: when
saving a user fails (by raising Exception).

Instead of using this exception for control-flow, just check the result
of user.save (no bang) and call "fail!" right there if needed.  Avoid
the top-level rescue all together rather than weakening it to something
like StandardError because a Devise's prominent warden strategy also has
no top-level rescue.
Add pristine Rails engine "dummy" app generated by EN

I want to run integration tests, and to do so I need a test app to run them
against.  Rails's engine generates them with:

    rails plugin new devise_capturable --mountable

in the test/dummy directory.  Generate it there and copy it into this
project to ensure compatibility with Expectnation's (EN's) Rails version
(3.2.18).  Use the more descriptive directory name, "rails_app", as
Devise does.
Load rails_app in spec_helper and make specs run again

We have a rails_app to run tests on (under spec/), but we're not using
it yet.

* Adjust the spec_helper to start loading the rails_app via its
  environment.rb

* Remove the spec_helper's Devise::Strategies::Base, because Strategies
  is incorrectly declared as a class, and besides, we should load the
  strategy's real concrete base class to test the whole object as a unit
  (devise-3.4.0/lib/devise.rb:37:in `<module:Devise>':
  Strategies is not a module)

* Load rspec-rails in the spec_helper and set some Rails-related spec
  configs so we are ready to do rails testing

* Require 'devise' unconditionally in lib/devise_capturable.rb so we
  have it loaded in time to register the Warden strategy (line 5) and
  Devise module (line 20)

* Change the engine class name in the rails_app's config/routes.rb from
  the default to the actual name

* Add dependencies to the gemspec that are required to load and test the
  Rails app

* Fix now-failing examples by feeding an empty env hash to the strategy
  and changing attribute order in the view helper example

* Enable Capybara by requiring it in spec_helper and provide an initial
  example for demonstration purposes
Expand tabs to fix indentation (white-space only)

Several parts of the code base (but not all) use tabs for indentation
rather than the typical two-space style.

Replace all tabs with two spaces and make a few remaining tweaks to fix
indentation in those areas -- no changes other than white space.
Remove trailing white space from code (white-space only)

Git nags about trailing white space, which is scattered throughout the
code base.

Remove unnecessary trailing white space -- no changes other than white
space.
Upgrade from RSpec 2.99 to 3.1 to avoid transitional warnings

Rspec warns:

    rspec-rails 3 will no longer automatically infer an example group's spec
    type from the file location. You can explicitly opt-in to this feature
    using this snippet:

    RSpec.configure do |config|
      config.infer_spec_type_from_file_location!
    end

    If you wish to manually label spec types via metadata you can safely
    ignore this warning and continue upgrading to RSpec 3 without addressing
    it.

However, we can't stop depending on this inference behavior; rspec will
continue to warn.  This issue confirms that 2.99 is not intended to be
a version for long-term usage:
https://github.com/rspec/rspec-rails/issues/1053

Upgrade to 3.1:

* Adjust gemspec to require new RSpec version
* Avoid deprecated .should syntax
* Avoid deprecated .stub and .should_receive syntax
* Remove RSpec config to infer_spec_type_from_file_location!
* Explicitly set type for capybara spec
Log to Rails log rather than stdout

The strategy is currently logging to stdout, which clutters the
spec output.

Log to the Rails log instead.
Remove unneeded "require" calls from specs

Most of the specs explicitly require the code they test.  However, this
is no longer necessary because the whole module is loaded via
spec_helper.  Also, the requires break if I try to move the files around
(as I will do next).

Remove the superfluous requires.
Move unit-level specs to spec/units

The current specs are unit-level; they use stubbing extensively to
isolate the code under test.

Move them to a units subdirectory under spec/ to highlight this
commonality and make it easier to see what's in the spec/ directory.
Ensure spec/rails_app/db/ is present by creating schema.rb

Aaron reports that specs do not run without spec/rails_app/db.  The
directory was created by "rails plugin new" but Git didn't track it
because it was empty.

Add a file to db/ so it is created automatically during checkout.  We
could add a .gitkeep, but schema.rb belongs there anyway, so create an
initial one with no tables for now.
Make view helper test more resilient to environmental differences

The spec for the link_to_capturable view helper appears to be dependent
on some part of the Ruby development environment. On my setup and
Marcel's, the spec passes when we compare output against

    <a href="#" class="capture_modal_open" id="capture_signin_link">Login</a>

However, in Rune's environment, the passing output is

    <a class="capture_modal_open" href="#" id="capture_signin_link">Login</a>

To address this discrepancy, break down the test to look for matches
within the string, regardless of the order in which they get rendered.
Ignore test logs and database file

The embedded test Rails application outputs to a log file and stores
test data in a .sqlite3 file. While these files would typically be
ignored in a standard Rails application's Git repository, they are not
ignored in this testing structure. They may be accidentally committed
into source control as a result.

Ignore log/*.log and db/*.sqlite3 files in Git.
Merge branch 'add-integration-testing'