New Payload Generator for MsfVenom

This adds a new Msf::Payloadgenerator class
this class takes over all the main payload functionality of MsfVenom.
It is all documented and tested code.
Msfvenom has been modified to use this new tested class.

This is also critical for upcoming work in Metasploit Pro.

VERIFICATION STEPS

- [x] Basically test all the payload options in Msfvenom