Update User Spec to use FactoryGirl and Clean Up

Update the User specs to use the FactoryGirl factories rather than
create instances directly from the User class - also clean up the tests
significantly. Also clean up the factories and the User spec code.
Add Authentication Migration/Factory/Spec Tests

Add the Authentication migration, factory and spec tests, as well as
update the overall database schema to reflect the changes for the
Authentication migration.
Add the Authentication Model

Add the Authentication model, including all constraints to pass the spec
tests and the associations with User.
Add Social Networking Icon Images

Add social networking icon images - taken from the intridea/authbuttons
repository (Github).
Add OmniAuth Gem and Provider Credentials

Add the OmniAuth gem and provider credentials, as well as upgrade many
of the existing gems.
Add Spec Tests for Authentications Controller

Add 'new' (login page with multiple providers) and 'create' (new
authentication session) RSpec tests for the Authentications controller.
Also add the OmniAuth 'facebook' and 'google' provider mocks for spec
tests.
Add Authentication Controller, 'new' Views, Routes

Add the Authentication controller and 'new' action views, as well as add
routes to the application for the Facebook callback as well as the
signin route.
Add Spec Tests for Application Helper Methods

Add spec tests for Application controller helper methods revolving
around determining the current user and whether they are currently
signed in.
Create Application Controller User Helpers

Create the Application controller helper methods for determining the
current user, determining if they are signed in, etc.
Add User has_many Authentications

Add has_many Authentications association to the User model.
Add Spec to Assign Providers in Auth Controller

Add spec to test assigning the valid Authentication providers to the
Authentication controller. This will be used to generate the allowable
sign-in mechanisms in the view.
Add Auth Provider Options and View Render

Add the @authentication_providers variable in the Authentication
controller, and utilize it in the listing of Authentications view.
Update Authentication Controller Create Action

Update the Authentication controller 'create' action to handle different
scenarios of a User attempting to sign into the application.
Move Authentication Providers to Model

Move the Authentication 'providers' listing into the Authentication
model (and out of the controller, where it should not have been in the
first place). Also, create Spec tests to ensure correct operation of the
move.
Add omniauth-github Support

Add the omniauth-github gem, update the helpers to include sample hash
data, update the initializer to include the key/id, and update the specs
and respective models/controllers to utilize the new OA mechanism.
Add User Controller Spec for 'new'

Add User spec tests for the User controller 'new' action that is
rendered when a new user signs into the application for the first time.
Add User New Action and Route

Add a 'new' action to the Users controller, in addition to a
corresponding route and blank template file.
Update Authentications Controller and Specs

Update the Authentications controller and spec tests to remove any
possible reference of assigning providers within the controller as this
should be (and is) done in the Authentication model.
Re-Add Condition Routes and Update Specs

Update the Condition controller specs, require authentication for
viewing conditions (in the controller), and re-add the routes associated
with a User's Condition now that authentication is in place.
Change Views to Reference Sign IN/OUT

Change the views to reference a "Sign In" and "Sign Out" syntax rather
than "Login" and "Logout" to be more succinct and conform to the new
routes.