Fix #3976 - validate and normalize user-supplied URI for http_login.rb

URI should be validated and normalized before being used in an HTTP
request.
Fix #3974 - Validate and normalize URI for axis_login
Move TcpServer into its own file
Fix jenkins when CSRF is enabled
Whitespace
Move SMBServer into its own file
Add magic encoding to new files
Re-enable proxies for HTTP-based login scanners
Make the error message a little more useful
added mssql_escalate_dbowner_sqli
Report the actual host that failed to connect

Instead of the eventual target where our proxy chain will connect. In
the usual case (no Proxies set), this will be the same output as before.
When proxies are given, the user will see that the first proxy
connection is actually what failed.
Add tcp evasion options to mssql_login
cleaning up
Retry the script page request to get the token

After logging in to Jenkins the script console page
needs to be requested again to get the CSRF token.
Merge pull request #1 from zeroSteiner/fix-pr4020-login

Retry the script page request to get the token
fixed logic bug
Restore proxies to ssh scanners
Clean up exceptions

Of particular note is mysql, who was rescuing Rex::ConnectionTimeout
*after* Rex::ConnectionError, which never would have fired anyway.
Clean code
Modify title