Reduce the chance of file descriptor leaks in SMBServer

This patch addresses three observed error conditions in long-running SMB services.

1. A call to get_once() in on_client_data could raise a Timeout exception and bubble all the way up to the dispatcher. This should technically never happen, but gets triggered for zero-byte writes and clients closing their connections. The fix was to handle the exception and lower the timeout. The change was tested with a number of SMB clients to make sure this didn't introduce any regressions.

2. A client could indefinitely keep a connection to the SMB server. The SMB server now disconnects idle clients after 120 seconds of inactivity (configurable).

3. A client could send a large amount of data that was invalid SMB traffic, using up memory as a potential DoS.

Caveats: The idle client sweep occurs every 100 requests or at an interval equal to the idle timeout. A client could fill up the entire connection table on its own, preventing the sweep from occurring by preventing new connections. Fixing this would require a dedicated thread to sweep for idle connections and is a more aggressive attack than this patch is designed to defend against (accidental connection flooding, basically).
Fix use of datastore['SMBServerIdleTimeout']
Replace 'rescue nil' with DRY-violating versions :(
Verbose messages on why a connection is closed
CVE-2014-7228 Joomla/Akeeba Kickstart RCE

Exploit via serialiazed PHP object injection. The Joomla! must be
updating more precisely, the file $JOOMLA_WEBROOT/administrator/
components/com_joomlaupdate/restoration.php must be present
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
Typo + shorten php serialized object
Fix jenkins when CSRF is enabled
added mssql_escalate_dbowner_sqli
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
Removed unused variables
Some changes to use primer

Follow wiki How-to-write-a-module-using-HttpServer-and-HttpClient
Fix check method
Delete return
Land #3738, SMBServer file descriptor updates
Do code cleanup