fix for bug 8456

On systems without bundled johntheripper (either by removing the bundled version or by no compatible version shipped) the system john is used.  In this case, all of the checking for compatible bundled jtr makes no sense and as such we can shortcut out of this to not only reduce the size of msf (for embedded) but also to speed execution (saving multiple calls to some random bundled binary cpuinfo*.bin).

This patch makes it very easy to simply remove cpuinfo and msf will not try to run it when missing and default to running john from the path.
Deal with missing bins, too.

This could be way more DRY. At least there's a YARD-ish comment.

This fixes up https://github.com/rapid7/metasploit-framework/pull/2465
to be a more complete solution.

[SeeRM #8465]
Litter some more rescue nil's in there

I hate them but they were there when I got there.

A more sane way to deal with this should happen someday.
Merge pull request #1 from todb-r7/land-2465

Fix up PR #2465
Land #2465, deal with missing cpuinfo bins

[FixRM #8456]

Thanks @ZeroChaos!