implements a simple grep feature for msfconsole

example usage:
grep https show payloads
grep -i iPhone show exploits
grep -i sp3 show targets
grep '^[\s]*generic/c' show payloads

Usage: grep [options] pattern cmd

Grep the results of a console command (similar to Linux grep command)

OPTIONS:
    -c        Only print a count of matching lines.
    -h        Help banner.
    -i        Ignore case.
    -m <opt>  Stop after arg matches.
    -v        Invert match.
adds the -A and -B options to grep

-A arg, show arg lines after match
-B arg, show arg lines before match
example:
grep -i -A 2 Reverse show advanced
added -k keep and -s skip
Merge remote-tracking branch 'upstream/master' into msfconsole-grep
fixes some issues with -k and -s
grep tab complete is working, but not fully

options tab complete, but not the commands at the end
attempt to add nested tab completion
Merge remote-tracking branch 'upstream/master' into msfconsole-grep
adds @todo for when tab_comp norm is completed

tab_completion normalization is RM7649
changes to address scriptjunkie's rpc concerns

as described in https://github.com/rapid7/metasploit-framework/pull/820
add yard doc and allow for -A and -B at same time
yard doc fixed and added for all _tabs methods
fixed bug with -A
fixed prompt issue, still need to restore context

see line 2519 area.
msf  exploit(psexec) > grep -i -A 2 encoding show
<snip>
msf>
prompt fixes (restores prompt context) & normalization

Msf::Ui::Console::Driver::DefaultPrompt and
Msf::Ui::Console::Driver::Default should be used when default is desired
fix typo in args.shift
handle unknown commands more informatively

before it just returned nothing, now it prints the familiar "Unkown
command: " message
undo vestiges of attempt to add tab_complete nesting

return code to original state before I started editing
msftidy eol fixes
add -R capability like hosts -R

moves the set_rhosts method def out into a separate file so it can be
included by both db.rb cmd_hosts and core.rb cmd_grep