Nicks online now stores a nick object for watched nicks.

If a user is online, but doesn't share a channel with us then
they get a nick object in NicksOnline. If we then start to share
a channel, our nick object is handed off to nicklistmodel. If
nicklistmodel has a nick object, and then the user leaves our
shared channels, it gets handed to NicksOnline until we've
verified that this user is offline.

This means we don't lose user data just because we leave a
channel that our watched nick was in. Or when we start doing
whois's of watched nicks, it makes it so we don't lose that
information when we join a channel the nick is in. It also
gives us a place to store that whois information.

Also fixed some areas where lowered nicks were unnescessarily, or
redundantly used.