Updated shodan_search for new API

Updated to support new API, domain, and HTTPS.

Shodan has recently added new domains, new API, and everything
is now over HTTPS. Optional DB reporting has been update so it
can be used as input to RHOSTS for other modules.
> because no one can decide on exactly which Errors need to be handled and we don't like to rescue all exceptions

One example I can think of is for some reason you don't actually have the permission to write to the directory:

```
$ ls -l |grep test
d--x------    2 root   2075806812    68 Aug 20 11:26 test
$ irb
1.9.3-p547 :001 > f = File.open("test/hello.txt", "wb")
Errno::EACCES: Permission denied - test/hello.txt
	from (irb):1:in `initialize'
	from (irb):1:in `open'
	from (irb):1
	from /Users/test/.rvm/rubies/ruby-1.9.3-p547/bin/irb:12:in `<main>'
1.9.3-p547 :002 >
```

If this happens, your module exits unexpectedly, but there will be a file handle open, and that handle won't be gone until msfconsole exits. So that's why block-based is better, as @kernelsmith pointed out.