Glassfish LoginScanner exception

`LoginScanner`s should *not* raise exceptions unless something is broken.

## Verification

### Glassfish
 - [x] see #3716 for how to install glassfish if you don't already have it

#### Test the module with Secure Admin off

By default, Secure Admin is off, so you cannot login remotely. Let's test this and make sure the module is aware of this condition:

- [ ] Start msfconsole
- [ ] ```use auxiliary/scanner/http/glassfish_login```
- [ ] Set the appropriate options (rhosts, username, and password)
- [ ] ```Run```
- [ ] Make sure you see the message: "Secure Admin must be enabled to access the DAS remotely."

#### Test the module with Secure Admin on

- [ ] On the Glassfish box, open a browser, and then go to: http://localhost:4848
- [ ] Look at the menu on the left, those are the "Common Tasks". You should see an item that says "server (Admin Server)", click on that.
- [ ] You should see a button that says "Enable Secure Admin", click on that. If your Glassfish does not have a password, it will ask you to set that first before enabling Secure Admin.
- [ ] On the attack's box, use the browser to verify you can login remotely
- [ ] Run the glassfish_login module with the correct username/password, you should see a successful login attempt message
- [ ] Run the glassfish_login module with a bad password, you should NOT see the same successful login message
 - [ ] VERIFY that all the same behavior of the above is still intact

### HTTP
 - [ ] Create file:

         msfadmin badpassword
         msfadmin msfadmin
         asdfjkl doesntreallyexist

 - [ ] `use auxiliary/scanner/http/http_login`
 - [ ] `set AUTH_URI /ntlm/` 
 - [ ] `run`
 - [ ] **VERIFY** success
 - [ ] `set AUTH_URI /negotiate/` 
 - [ ] `run`
 - [ ] **VERIFY** success
 - [ ] `set AUTH_URI /basic/` 
 - [ ] `run`
 - [ ] **VERIFY** success
 - [ ] `set AUTH_URI /dne/` 
 - [ ] `run`
 - [ ] **VERIFY** No auth required
 - [ ] `set AUTH_URI /` 
 - [ ] `run`
 - [ ] **VERIFY** No auth required


I'm not thrilled that this both extracts and caches the version, as it's not obvious from the name of the method.  Additionally, if you call extract_version twice on two different banners and the a version can't be extracted from the second banner, then the previous version will be returned because the `if elsif` won't explicitly set @version to `nil`, which could lead to a subtle bug later if this code gets used by someone starting from this module as a base and changing it for a new module.