Rework of PR1421

This rework of PR1421 solves a number of issues with the original commit:
* The SMB smb_recv_parse code would sometimes not wait long enough for a reply and then throw an InvalidType response later on. The new packet cache handles this situation much cleaner and doesn't change backwards compatibility. This should be rewritten at some point to be multi-thread friendly managed service handler that is constantly receiving, caching, and dispatching (like Meterpreter), but this helps for now.
* The file search methods are now sane and dont depend on squashing hashes into arrays (?!?) as before
* The raise(), typos, and weird/busted indents from tabassassin have been fixed
* The de-unicoding of share names has been changed to be consistent with the rest of the framework
* Test against Windows 8.1 and Windows 8 as well

```
msf auxiliary(windows_deployment_services_shares) > run
[*] 192.168.0.6:445 Stored unattend.xml in /home/hdm/.msf4/loot/20140623161732_default_192.168.0.6_windows.unattend_465407.txt
[+] 192.168.0.6:445 Share=REMINST Path=\Unattend.xml Username=domain.suffix\username Password=password
```