Add admin check to smb_login

The attached updates changes smb_login to detect if the newly discovered user is an administrator.  It is based on code from Brandon McCann "zeknox" submitted in PR #1373, the associated changes, and the newer PR #2656.
The changes should correct a few issues with PR #1373 and #2656 and address Redmine bug #8773.

Specifically it:

 - Fixes the admin detection code by using simple.disconnect(<share>) instead of disconnect()
 - Adds support for detecting if the remote host will allow connects using any domain name when one of the new status codes is returned
 - Dealt with the issue in PR #2656 where the username was prefixed with a '\'


**Verification**

- [ ] Be connected to a database
- [ ] Run this against a machine with a known user and admin user
- [ ] See that the admin user is reported correctly
- [ ] See that the non-admin user is reported correctly
- [ ] Check the output of creds
- [ ] Select a target that requires a domain in order to authenticate
- [ ] In the stored credentials, with CHECK_ADMIN enabled, see that the domain name is, in fact, preserved in the reporting
- [ ] To validate that the remote domain ignores domain value use the following command from a windows system:
```
net use \\<hostip>\admin$ /user:<random_value>\<username>   <password>
```