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.
I think this is the nil? to which you were referring, it can be rewritten as if datastore['OUTFILE']

```Ruby
save_output(tbl) if datastore['OUTFILE']
```
if you query a hash for a non-existent value, you'll get nil (unless the default value of the hash has been changed, which is rare), so the line above will save_output(tbl) only if something other than nil or false is returned by datastore['OUTFILE']