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
Merge remote-tracking branch 'upstream/master' into enum_ad_perf
No need to fiddle with naming context
Merge remote-tracking branch 'upstream/master' into enum_ad_perf
Dont lookup twice
Comments
Merge remote-tracking branch 'upstream/master' into enum_ad_perf
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
Add a defined? check to fix older versions of OpenSSL.

Older versions of OpenSSL did not export the OP_NO_COMPRESSION constant,
so users running metasploit on systems with old copies of openssl
would throw a NameError since the constant did not exist.
Add more informative errors
Fix older OpenSSL compat with compression
Clean up the if.nils?
Move options to mixin
Merge pull request #32 from todb-r7/saner-ifs-pr1473

Clean up the if.nils?
Remove hardcoded string