Add more payloads for nodejs.
* Adds a reverse and bind CMD payload
* Adds a bind payload (no bind_ssl for now).
Add missing require to nodejs/bind payload.
Move shared Node.js payload logic to mixin.
- this fixes the recursive loading issue when creating a payload
  inside the cmd payload
- also dries up some of the node cmd invocation logic.
Add SSL support to #nodejs_reverse_tcp.
[FixRM 8482] Fix uninit constant Rex::Exploitation::JavascriptOSDetect

This fixes an uninit constant Rex::Exploitation::JavascriptOSDetect
while using a module with js_os_detect. It was originally reported
by Metasploit user @viniciuskmax

[FixRM 8482]
Land #2508 - Add nodejs payloads
[FixRM 8489] undefined method `empty?' for nil:NilClass in msfcli

This fixes a undefined method `empty?' for nil:NilClass (NoMethodError)
in msfcli. [SeeRM 8489]
Land #2518, uninitialized JavascriptOSDetect fix
Land #2519, undefined method fix for msfcli