Password Authentication!

Finally added support for password authentication for registered users.
This is done by the new authenticate function, which does a memcmp on
the hash of the supplied passphrase and the hash on record. So far
it has been successfully tested.

In other news, find_user() has been changed so that it now returns
the id value of the user it finds a name in common with. This makes
it easier to tell which user object to compare the passphrase hash
with, without creating a new function for that specific need.

This still allows the find_user to act as a type of boolean function,
where now instead of 0 for false, a return value of less than 0 is now
false.