auxiliary/scanner/http/soap_xml cleanup

During lunch I was poking at a device I have at home that has a SOAP interface.  It is very flaky and soap_xml wasn't being particularly nice about it.

This:

* Corrects Ruby style (most) everywhere
* Uses Rex's sleep, converts to milliseconds -- seconds are too granular
* Moves begin/rescue inside nested verb+noun loop
* Prints errors even if not in verbose mode
* Corrects URI construction when PATH ends with /

I don't currently have a positive test case (a target that this module will find anything useful on), but here are some steps to validate.

Without this, in non-verbose mode it finishes almost immediately and says nothing:

```
resource (/tmp/xml.rc)> use auxiliary/scanner/http/soap_xml
resource (/tmp/xml.rc)> set RHOSTS 192.168.1.100
RHOSTS => 192.168.1.100
resource (/tmp/xml.rc)> set RPORT 21309
RPORT => 21309
resource (/tmp/xml.rc)> run
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```

But if you set verbose and run, you'll see that the paths are wrong, the exception is being hidden and the module is prematurely terminating:

```
msf auxiliary(soap_xml) > set VERBOSE true
VERBOSE => true
msf auxiliary(soap_xml) > run
[*] Sending request //getpassword to 192.168.1.100:21309
[*] Sending request //gettask to 192.168.1.100:21309
[*] Sending request //gettasks to 192.168.1.100:21309
[*] Sending request //getpass to 192.168.1.100:21309
[*] Sending request //getadministration to 192.168.1.100:21309
[*] Sending request //getaccount to 192.168.1.100:21309
[*] Sending request //getaccounts to 192.168.1.100:21309
[*] Sending request //getadmin to 192.168.1.100:21309
[*] Sending request //getlogin to 192.168.1.100:21309
[*] Sending request //getlogins to 192.168.1.100:21309
[*] Sending request //gettoken to 192.168.1.100:21309
[*] Sending request //gettokens to 192.168.1.100:21309
[*] Sending request //getcredential to 192.168.1.100:21309
[*] Sending request //getcredentials to 192.168.1.100:21309
[*] Sending request //getkey to 192.168.1.100:21309
[*] Sending request //getkeys to 192.168.1.100:21309
[*] Sending request //getguid to 192.168.1.100:21309
[*] Sending request //getmessage to 192.168.1.100:21309
[*] Sending request //getmessages to 192.168.1.100:21309
[*] Sending request //getuser to 192.168.1.100:21309
[*] Sending request //getusers to 192.168.1.100:21309
[*] Sending request //getusername to 192.168.1.100:21309
[*] Sending request //getusernames to 192.168.1.100:21309
[*] Sending request //getload to 192.168.1.100:21309
[*] Sending request //getlist to 192.168.1.100:21309
[*] Sending request //getname to 192.168.1.100:21309
[*] Sending request //getnames to 192.168.1.100:21309
[*] Sending request //getfile to 192.168.1.100:21309
[*] Sending request //getfiles to 192.168.1.100:21309
[*] Sending request //getpath to 192.168.1.100:21309
[*] Sending request //getpaths to 192.168.1.100:21309
[*] Sending request //getdirectory to 192.168.1.100:21309
[*] Sending request //getdirectories to 192.168.1.100:21309
[*] Sending request //getconfiguration to 192.168.1.100:21309
[*] Sending request //getconfigurations to 192.168.1.100:21309
[*] Sending request //getconfig to 192.168.1.100:21309
[*] Sending request //getconfigs to 192.168.1.100:21309
[*] Sending request //getsetting to 192.168.1.100:21309
[*] Sending request //getsettings to 192.168.1.100:21309
[*] Sending request //getregistry to 192.168.1.100:21309
[*] Sending request //geton to 192.168.1.100:21309
[*] Sending request //getoff to 192.168.1.100:21309
[*] Sending request //activepassword to 192.168.1.100:21309
[*] Sending request //activetask to 192.168.1.100:21309
[*] Sending request //activetasks to 192.168.1.100:21309
[-] The connection was refused by the remote host (192.168.1.100:21309).
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
* See that the URI requested has been corrected. 
```
msf auxiliary(soap_xml) > set VERBOSE true
VERBOSE => true
msf auxiliary(soap_xml) > run
[*] Sending request /getpassword 192.168.1.100:21309
[*] Sending request /gettask 192.168.1.100:21309
[*] Sending request /gettasks 192.168.1.100:21309
[*] Sending request /getpass 192.168.1.100:21309
...
```

* See that when the target gets upset (which it does frequently), the module continues:
```
...
[*] Sending request /activemessage 192.168.1.100:21309
[*] Sending request /activemessages 192.168.1.100:21309
[-] The connection was refused by the remote host (192.168.1.100:21309).
[*] Sending request /activeuser 192.168.1.100:21309
[-] The connection was refused by the remote host (192.168.1.100:21309).
[*] Sending request /activeusers 192.168.1.100:21309
[-] The connection was refused by the remote host (192.168.1.100:21309).
[*] Sending request /activeusername 192.168.1.100:21309
[-] The connection was refused by the remote host (192.168.1.100:21309).
[*] Sending request /activeusernames 192.168.1.100:21309
[-] The connection was refused by the remote host (192.168.1.100:21309).
[*] Sending request /activeload 192.168.1.100:21309
[-] The connection was refused by the remote host (192.168.1.100:21309).
[*] Sending request /activelist 192.168.1.100:21309
[-] The connection was refused by the remote host (192.168.1.100:21309).
[*] Sending request /activename 192.168.1.100:21309
[*] Sending request /activenames 192.168.1.100:21309
[*] Sending request /activefile 192.168.1.100:21309
[*] Sending request /activefiles 192.168.1.100:21309
[*] Sending request /activepath 192.168.1.100:21309
...
```
@kernelsmith wrote:

> The change from seconds to ms could screw anyone up who's scripting this.

I would be far less worried about this if there was a new `print_status` line that just says something like 

````ruby
print_status "Starting scan with #{datastore['SLEEP']} millisecond delays"
````

Since the default is zero, most people aren't going to insert any delay at all, so most won't notice.