Create Users controller.

Simple use of rails generate to create users controller.
Create tests for Users#index.

These three simple tests ensure that the Users index has a title, a count
of the number of users, and that all the users are listed on that
page.
Pass tests for Users#index.

We add the right text and iterate through the users to get the output
expected by our tests for this action.
Refactor Users#index.

We use a partial to make the user index more concise.  All tests still
pass.
Begin using FactoryGirl.

We import the gem and then use it instead of explicitly calling
User.create() to be able to handle creation of users in our tests.
Use named route for test

We specifically use users_path instead of '/users' for
generalizability.
Add tests for creating new users

We add several tests to check that new users can be created properly.
Nothing special in that idea, but as part of the process, we added a
helper function to the testing framework that checks for alert
messages that are of the proper format named have_alert().  That
method takes two parameters that include the alert type and any
options that need to be passed on to have_selector().  The
implementation is yet to be completed since the student does not
currently know about flash messages and therefore what the content of
the have_selector() call should even look like.  That will be
completed in future commits.
Create new user form with password field.

In this commit, we simply create a new form for uploading users.
Currently, it only has a password field, so it is not very helpful,
but future commits will fix that.
Fix test to use describe instead of it

The broken test accidentally created a nested test with it instead of
describe.  This commit fixes that error.
Complete new user form.

This commit now properly creates a form for creating a new user on the
site.
Allow a User to be created.

We accept a user with name, email, and password to be created using
the form from the new action.  All requests are automatically
redirected to the index action.
Display welcome message on user creation.

We display a welcome message using the flash object when creating a
new user including a CSS class to mark it for later use.
Handle failure to create new user

We add in additional code to handle when a user is not created for
improper validation or other reasons.
Refactor flash messages

We handle the flash messages better by iterating through the flash
object instead of a sequence of if's checking for various potential
flash message types.
Better UI for failure on User creation

We now display our error messages and put them next to the form that
generated them.  This makes it much easier for a user to be able to
fix the problem since they see what the error is and have that
information on the same web page as the form they need to fill out.
Use flash on all views.

Move the iteration of flash throughout the website by putting the
iteration on flash in the application layout instead of inside a
single view.
Refactor user(s) for listing

Use pluralize to properly display the correct version of user/users
depending on the number of users in our system.
Add tests for displaying individual user

Three simple tests to check that the user page can be displayed with
the "right" content.
Pass show individual user tests

We create the proper view so that we can display a user the way we
want to.
Test for viewing non-existant user

We create a new test that tries to access a user that doesn't exist.
This introduces the :request type of test and the redirect_to() method
on the response object.  We give a hard-coded user ID of -1 that we
expect will not match any users in the database, so this should always
encounter a failure mode.