Pull out common fuzzy matching code from login_database.cc

Some helper functions used for public suffix list (PSL) matching (also fuzzy matching) of credentials' realm in password manager used to sit in login_database.cc.
That was OK, because fuzzy matching was only used on Android.
Now we plan to extend it to Linux, which means other password storage backends will need the same functions.
This CL does:
  1. Pull out the fuzzy matching code out of login_database.cc to a "util" file.
     -> Reasons stated above.
  2. Change the cached boolean for whether fuzzy matching is enabled from login-database-instance-specific to a global value.
     -> This value does not depend on a specific instance of the database.
  3. Forward declare autofill::PasswordForm in login_database.h instead of including it.
     -> This is now possible due to correcting the signature of the form-matching method
        (previously contained a copy and a scoped_ptr to a form, now contains a const ref).

This CL does not enable the fuzzy matching code on Linux yet, not even behind a flag. This will happen in a separate CL.
This is to preserve the property that this CL should have cause no functional change at all.

BUG=324291

Review URL: https://codereview.chromium.org/94743004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239463 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 239463