Clearify when to use a specific CheckCode

An example of the biggest confusion module developers face is not
actually knowing the difference between Detected vs Appears vs
Vulnerable. For example: a module might flag something as a
vulnerable by simply doing a banner check, but this is often
unreliable because either 1) that banner can be fooled, or 2)
the patch does not actually update the banner. More reasons may
apply. Just because the banner LOOKS vulnearble doesn't mean it is.
Use the term "exploit" is a little more correctly

So Metasploit uses the term "exploit" to describe something, a module
or an action, that results popping a shell. A check normally doesn't
pop a shell, so avoid that language.
Use a better term
Add wiki link "How to write a check() method" to documentation
fixing NameError undefined local variable in an import
Land #2894, @wchen-r7's CheckCode documentation update
Land #2907, fixes qual asset importer

Addresses MSP-9311