Fixed possible collisions in random variable generation and added new powershell payload generator

Created the new psh-reflection payload generator.  The advantage of this method over existing methods, 
are that no temporary files will be created on the target computer.  This can be verified by creating a normal 
psh payload and introducing an error into the code after the "addType" call.  The error message will
reference a randomly named .cs file under AppData\Local\Temp\

Introduced a new method called get_unique_random and replaced all calls to Rex::Text.rand_text_alpha
with it.  This new method will ensure that there are no collisions between two randomly created variable names.

Performed minor clean-up on the psh payload.