Popup layout CSS now looks like default layout.

While migrating the default layout to use CSS instead of tables, I gave
the popup layout a cursory conversion. This commit finishes the
conversion. The popup now look more like a mini version of the default
layout, with a rounded corners outer container and a smaller top rounded
banner.

The popup reuses the same css class as the default layout for the
outer container and banner.

It looks like pop-up sizes are hardcoded into links. I only changed one
of them, but might have to track down each of them to give a nice
looking size. Would be nice if the popups can get auto get a size that
fits.
Remove code and add comments in user controller.

Tried to fix the users page not being able to filter users by course,
but ajax list looks way too complicated for me to want to touch. Instead
just added some comments and remove the non-working code.
Fix installer wizards css, minor css refactoring.

Forgot to change the installer layout along with the default layout in
the last commit. When the default layout's css classes and id changed,
the installer layout didn't pick up the change so looked messed up.

Added a "good" flash message box. It has a green border/text instead of
the more dire looking red of the regular flash message.

Also some CSS consolidation to remove extra tags.
CSS refactor, fix controller for users/add.

Change the form for users/add to use CSS instead of tables. This
involves the creation of the new USERS section in ipeer.css.

Adding the new user to courses should now work properly for at least
students and instructors. Not yet implemented for admins. Note that if
you want to preselect a course for the user to be added to, just pass in
the courseid of the course. E.g.: users/add/1 will preselect the course
with id 1.

Role selection for the new user is newly implemented. The old form was
writing to the deprecated roles column in the Users table. The new form
will properly update the RolesUsers table instead. Note that new users
created by this form will be broken since there are still places in the
code that checks for roles in the old style. We should replace the old
checks instead of writing in a placeholder role, easier to see the
presence of the outdated code if it's broken.

Send email notification calls the correct function, but not sure if the
email function actually works. Also not sure what email gets sent out,
need to test.

Form validation now requires a role, which defaults to student. The
previous form wasn't requiring those, which resulted in new users that
have no privileges and can't be deleted in the UI.

A first name is also now required, since some areas use the first and
last name as displays. If the user doesn't have a first or last name, it
doesn't fall back to the username, instead just displays a blank. This
behaviour proved unexpectedly complex to fix, so I just made this field
required instead.

Title and Student Number used to show up when the role is appropriate,
something that might be added back later, but isn't really critical at
the moment.

The old password generation was insecure, so I wrote a more secure one.
Unfortunately, this results in a password that was decidely less user
friendly. We can make it more user friendly by generating a shorter
password, if we can tolerate the weaker security. Still need to fix
password hashing.