Make sure no one ever misunderstand the "unkonwn symbol" lint message ever again
Make sure no one ever misunderstand the "unkonwn symbol" lint message ever again

Summary: A lot of new contributors don't resolve this. Make it easier to resolve, more comprehensive, and more explicit about not being ignorable.

Test Plan:
  >>> orbital ~/devtools/arcanist $ arc lint
  >>> Lint for src/lint/linter/ArcanistPhutilLibraryLinter.php:

     Error  (PHL1) Unknown Symbol
      Use of unknown class 'BlerpBarp'. Common causes are:

        - Your libphutil/ is out of date.
          This is the most common cause.
          Update this copy of libphutil: /INSECURE/devtools/libphutil

        - Some other library is out of date.
          Update the library this symbol appears in.

        - This symbol is misspelled.
          Spell the symbol name correctly.
          Symbol name spelling is case-sensitive.

        - This symbol was added recently.
          Run `arc liberate` on the library it was added to.

        - This symbol is external. Use `@phutil-external-symbol`.
          Use `grep` to find usage examples of this directive.

      *** ALTHOUGH USUALLY EASY TO FIX, THIS IS A SERIOUS ERROR.
      *** THIS ERROR IS YOUR FAULT. YOU MUST RESOLVE IT.

               181               "*** THIS ERROR IS YOUR FAULT. YOU MUST RESOLVE IT.");
               182
               183             if (false) {
      >>>      184               new BlerpBarp();
               185             }
               186           }
               187         }
  >>> orbital ~/devtools/arcanist $

Reviewers: btrahan, chad

Reviewed By: chad

CC: aran

Differential Revision: https://secure.phabricator.com/D7752

wharris/arcanist,aik099/arcanist,fivestars/arcanist,coursera/arcanist,hach-que/arcanist,aik099/arcanist,PageUpPeopleOrg/arcanist-patches,calblueprint/arcanist,phacility/arcanist,calblueprint/arcanist,sneakpeeq/arcanist,chundongwang/arcanist,dguo-coursera/arcanist,KieranHayes/arcanist,kevinseelbach/arcanist,codelabs-ch/arcanist,Symplicity/arcanist,alexmv/arcanist,sneakpeeq/arcanist,wikimedia/phabricator-arcanist,jra3/arcanist,uber/arcanist,aik099/arcanist,Khan/arcanist,eSpark/arcanist,coursera/arcanist,calblueprint/arcanist,kevinseelbach/arcanist,r4nt/arcanist,zhihu/arcanist,Khan/arcanist,aik099/arcanist,Khan/arcanist,Symplicity/arcanist,haskell-infra/arcanist,folsom-labs/arcanist,Symplicity/arcanist,dguo-coursera/arcanist,calblueprint/arcanist,Symplicity/arcanist,wxstars/arcanist,codelabs-ch/arcanist,KieranHayes/arcanist,r4nt/arcanist,wharris/arcanist,wxstars/arcanist,codelabs-ch/arcanist,fivestars/arcanist,zhihu/arcanist,folsom-labs/arcanist,kevinseelbach/arcanist,wikimedia/phabricator-arcanist,phacility/arcanist,uber/arcanist,uber/arcanist,chundongwang/arcanist,alexmv/arcanist,eSpark/arcanist,memsql/arcanist,chundongwang/arcanist,hach-que/arcanist,codelabs-ch/arcanist,dguo-coursera/arcanist,memsql/arcanist,haskell-infra/arcanist,wharris/arcanist,phacility/arcanist,zhihu/arcanist,phacility/arcanist,folsom-labs/arcanist,eSpark/arcanist,KieranHayes/arcanist,folsom-labs/arcanist,sneakpeeq/arcanist,eSpark/arcanist,Khan/arcanist,PageUpPeopleOrg/arcanist-patches,jra3/arcanist,wxstars/arcanist,fivestars/arcanist,coursera/arcanist,coursera/arcanist,kevinseelbach/arcanist,codelabs-ch/arcanist,hach-que/arcanist,wikimedia/phabricator-arcanist,alexmv/arcanist,zhihu/arcanist,KieranHayes/arcanist,sneakpeeq/arcanist,haskell-infra/arcanist,dguo-coursera/arcanist,jra3/arcanist,wxstars/arcanist,fivestars/arcanist,wikimedia/phabricator-arcanist,alexmv/arcanist,jra3/arcanist,wharris/arcanist,uber/arcanist,hach-que/arcanist,r4nt/arcanist,chundongwang/arcanist,r4nt/arcanist,memsql/arcanist,PageUpPeopleOrg/arcanist-patches,memsql/arcanist,PageUpPeopleOrg/arcanist-patches,phacility/arcanist,haskell-infra/arcanist