Added regex option to validate options
Support more tab completion features
Tab complete case insensitive module options too
Tab complete the same case
Support deprecation information from constants
Large pass_file hangs login modules

SeeRM #8704

When running a *_login module that contains a large PASS_FILE
the module appears to hang while it is creating the combinations over
such a large dataset.  The solution proposed in the Redmine task
requested that the user be alerted with some sort of progress feedback
if the process takes an excessive amount of time.

I have added a message that logs to the console that contains the
number of pairs left to be constructed before the module will continue.
The verbiage is fairly arbitrary and should probably be updated to
something that might be more descriptive.  Likewise, the sleep
interval may need to be adjusted.
Adding count-based print message

This commit removes the creation of a separate, timed
thread for printing out status messages to the user
in the case of large PASS_FILEs.  This adjustment eliminates
the overheard of context switching associated with
spinning off separate threads, as well as the dangers
associated with the Thread#kill method.
MIPS exec payload fixes for encoder
Omitting timestamp from msfconsole search output

SeeRM #8795

The disclosure date field in the results from the search command
where returning with a timestamp that was almost always 00:00:00 UTC. I added a bit of date time formatting to only
include the year (4 digit), month (2 digit), and day (2 digit)
in the following format: Y-m-d.  This date time formatting
applies to both searches conducted through the database instance
as well as searches performed without a database (slow search).
Adjusting status message to be based on time

Previously the status message timing was determined by the number of
pairs left to process.  I have adjusted the code to rely on Time.now
in order to consistently print a message out every 60 seconds.
fixed some ruby warnings
Rex::Text::uri_encode - make 'hex-all' really mean all.

'hex-all' encoding was previously ignoring slashes.
This pull adds 'hex-noslashes' mode which carries forward the previous functionality, and replaces all existing references to 'hex-all' with 'hex-noslashes'  It then adds a replacement 'hex-all' mode, which really encodes *ALL* characters.
Adds spec for 'hex-all' mode
Fix up spec.  Rex::Proto::Http::ClientRequest handles & and = outside of Rex::Text::uri_encode, so mode doesn't affect them.

Fix erroneous typo char.
Add 'u-noslashes' and re-order cases for consistency.
Update comment w/ all modes
Update comment again
Land #3353, @jjarmoc's Rex::Text::uri_encode improvements
Land #3353, this time for real
Resolved some msftidy warnings (Set-Cookie)