Feature: Add authentication plugin exposing 'mock_auth'

This new `mock_auth` configuration takes three forms:

First is when it is passed `true` like so:

```ruby
it 'is a test', mock_auth: true do
  # my test
end
```

In this case, `mock_auth` will mock the `current_user` method on the controller
being tested with a `User` model created via `FactoryGirl.create`.

It will also skip either the `authenticate_user!` or `authenticate`
`before_action` on that controller.

The second form it takes is:

```ruby
it 'is a test', mock_auth: Subscriber do
  # my test
end
```

In this case, `mock_auth` will mock the `current_subscriber` method on the
controller being tested with a `Subscriber` model created via
`FactoryGirl.create`.

Lastly, we can pass it a `Hash` of options containing one or more of `:class`
and/or `:method` and/or `:strategy`.

```ruby
it 'is a test', mock_auth: { class:                 Subscriber,
                             method:                :legit_subscriber,
                             authentication_method: :authenticate_legitly!,
                             strategy:              :instance } do
  # my test
end
```

This will override the various pieces of what is mocked out and allows almost
complete control over how `mock_auth` behaves.

Obviously if you use this a lot, you would be better off doing it yourself, but
it's here if you need it.

--------------------------------------------------------------------------------
Change-Id:     I26235f932d70f680e9a6aa14b0ad5f47ae5b428e
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Version Bump to 0.40.0