Allow user ability to set filename for psexec service binary

This should probably be higher up for all
generate_payload_exe but would take a major edit
move filename init up to remove dup code

as suggested by @jlee-r7
Fix a syntax error

Also uses a prettier syntax for setting the filename (ternary operators
are hard to read).
Land #1804, user-settable filename for psexec