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.
Remove arg for bind port/addr functions

Done to avoid masking of datastore instance variable.
Update reverse_https_proxy stager/handler

This change updates the proxy handler code, which for some reason was
ommitted in the orginal commits. This now uses the same mechanism as
the new code. It removes `HIDDENHOST` and `HIDDENPORT`, and instead
uses `ReverseListenerBindHost` and `ReverseListenerBindAddress`.
added dns_cache_scraper and useful wordlists
msftidy done
added period to description and changed tester to user
added additional url reference
modified wordlist path, modified report_goods to log udp or tcp, made wordlist not required
removed bogus urls that are throwing errors
added ResolverArgumentError rescue statement
fixed database overwriting issues
fixed syntax
added timeout options and rescue timeout
Land #2448, @OJ's ReverseListenerBindPort :)
Add post module to get LastSession.plist

LastSession.plist sometimes contains sensitive information such as
usernames and passwords. It'd be nice to keep this in loot.
Favor read_file instead
Delete unnecessary includes
Land #2775, @wchen-r7's post module to Safari get LastSession.plist
Make sure the file path is readable when it's ~/
There must be read_file