Improve wording
Nit
Derplet
Session list regularization and shift to objects.
In accord with newer review form style, avoid ::rf members.

Also update listid format (separate with /, use urlencode).
Internal: Use Contact::load_by_id, not lookupById.
Internal: Access contact states through methods.

E.g., Contact::has_review(), not Contact::isReviewer.
We want to load the required information dynamically.
Internal: Read author and reviewer state as late as possible.

Rather than immediately in valid().
Stop storing a Contact object in session state.
Great Contact Rewrite.

The purpose of this rewrite is to simplify the interaction between
Contacts and surrounding code.

Previously the mechanism for looking up a Contact was two-part:
(1) $c = new Contact;
(2) $c->load_by_id(...); (or load_by_email, or whatever)

But this had a bunch of disadvantages. If load_by_id() failed, the
Contact code was expected to uninitialize the Contact. But this was
done inconsistently (some parts of the Contact weren't erased).
It was wordy also, and interacted badly with mechanisms for
creating new contacts (specifically Contact::initialize).

This code attempts to replace all that. Now the load_by_ methods
are hidden; instead a user should call Contact::find_by_{id,email},
which creates & initializes a Contact (returning null on failure).

In addition other methods are renamed, and the session mechanism
is cleaned up (Contact objects aren't stored in the session;
instead we look up a new Contact object each time, which is cleaner
and safer, and use Contact::activate() -- a more targeted function
than the former Contact::valid() -- to install session state into
the Contact).

There will no doubt be bugs.

Signed-off-by: Eddie Kohler <ekohler@gmail.com>