Python Metepreter Reverse SSL

Also fixes a strange bit of logic in packet_parser which prevented SSL connection from working...

I couldn't understand the logic, why is it an if elseif? It seems like its should try to recv the packet length from the header and then recv the rest of the packet. However it gets the length and then exits?

This is at odds with the description

> Reads data from the wire and parse AS MUCH of the packet as possible.

This change doesn't appear to affect python/meterpreter/reverse_tcp or window/meterpreter/reverse_tcp negatively...

It appears that the original logic would work if IO.select worked correctly on SSLSockets: https://bugs.ruby-lang.org/issues/8875

I'm not sure if this change breaks much though...