Rex::Text::Ui::Table.new[find_by_colnames]

Add :[] to ...Ui::Table allowing user to pass multiple colnames.
Returns a new table with only those columns and their rows.

Useful when using Rex to filter output, prep CSV, etc.

Testing:
```
t = Rex::Ui::Text::Table.new('Columns' => ['a','b','c'])
t << ['x','y','z']
t << ['p','q','r']
t['a','c']

=> a  c
-  -
p  r
x  z
```
whitespace cleanup
Allow passing MaxChar to Rex::Ui::Text::Table cols

Passing MaxChar allows setting the maximum number of characters
printed within a specific column during the row_to_s method.
This does not affect CSV output nor truncate the actual data.
Meant for tidying up long console ouput.

Example: cleaned up cmd_creds to show proof and not maul tables
with unix session data.
Allow selection (and ordering) of column names

Build the creds table with only the columns we select,
in the order selected.

Example:

creds -s ssh -u root -S pubk -c port,user,proof

Credentials
===========

port  user  proof
----  ----  -----
22    root  KEY=30:...
22    root  KEY=37:...
22    root  KEY=30:...
22    root  KEY=37:...
22    root  KEY=a6:...
22    root  KEY=30:...
22    root  KEY=37:...
22    root  KEY=a6:...
22    root  KEY=30:...
22    root  KEY=37:...
22    root  KEY=a6:...
22    root  KEY=30:...
22    root  KEY=37:...
22    root  KEY=a6:...
22    root  KEY=30:...
22    root  KEY=37:...
22    root  KEY=30:...
22    root  KEY=37:...
22    root  KEY=a6:...
22    root  KEY=30:...
22    root  KEY=37:...
fix copypasta
Default to exe-small
Merge for retab
Retab changes for PR #2320
Merge for retab
Retab changes for PR #2093
Merge pull request #9 from tabassassin/retab/pr/2320

Retab/pr/2320
Merge for retab
Retab changes for PR #1681
new payload
add payload source
Merge https://github.com/rapid7/metasploit-framework
Merge pull request #7 from tabassassin/retab/pr/2093

Retab/pr/2093
Merge pull request #11 from tabassassin/retab/pr/1681

Retab/pr/1681
Add a bind port setting to reverse listeners

This adds a `ReverseListenerBindPort` advanced setting to the reverse listeners whic
allows for the local bind port to be separated from the `LHOST` setting used in the
payload. This means that listeners can bind to different ports in cases where the
attacker isn't able to listen on the same port that the victim can call out on, but
there are NATs/portforwards/whatever in place that allow the connection to happen.
Axe errant tabs and unused vars