Merge branch 'master', remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Fix #4119 - SMB lost search ID (sid) in find_first method

This will fix issue #4119. A bug in the find_first method in rex
SMB.

When the SMB client requests a TRANS2_FIND_FIRST2 for retriving
information about what items a directory has, the server returns
a response that contains an SID - a search identifier for the
transaction. If the SMB client wants more data, it must send a
TRANS2_FIND_NEXT2 request with the same SID. And then the server
will continue sending more until it runs out.

The root cause of this bug is that after the TRANS2_FIND_FIRST2
request is sent, our SMB's find_first method forgets the SID at
the end of the loop (out of scope).
Support SSL intermediate certs, closes #4238

Note that this does not apply to reverse_tcp meterpreter clients yet, as
they do not allow certificates to be supplied. I abstracted out the SSL
certificate generation and parsing methods so that we can address this
next.
Bugfix. Chrome is a liar (chain certs properly)
Merge remote-tracking branch 'upstream/master'
Fix service discovery errors
Land #4239 - Support SSL intermediate certs
Land #4173, @wchen-r7's fix for SMB find_first

* Fixes #4119, SMB find_first("\\*") does not return accurate results
* It missed initialization of sid
Update with :unique_data
Land #4242, @Meatballs1 fix for sap_service_discovery report_note

* I cannot reproduce @Meatballs1 issue
* But I noticed report_note should :update with :unique_data
* Fixed the :update