Generate MSI Payloads

[ Travis Failure is because Binary Files need Compiling/Creating ]

This allows generation of MSI payloads by replacing a buffer in an existing MSI template with a PE file. The template works with both x86 and x64 PE files <del>so can generate template_x86_windows.msi and symlink to template_x64.</del>

The buffer file can be any junk characters but should be larger than the intended PE file and I recommend a multiple of 4096. 

This uses the improved MSI template I recently pulled for AlwaysInstallElevated (https://github.com/rapid7/metasploit-framework/pull/1562) but instead of executing a separate payload.exe it contains a binary file within the MSI.

This EXE file gets extracted to c:\windows\installer\random.tmp and is then executed.

Users are required to enter administrative credentials or accept UAC prompt (if running as admin), but in return you get a SYSTEM shell. An extension to this work could be to work out how to create an MSI file which doesn't require Admin credentials by default.  This would probably require a separate template. 

If executed with msiexec /quiet then no UAC or Admin credentials prompt are presented to the user. If the user is Admin then you will receive a SYSTEM session. If a normal user then you will get normal user privileges.

The mechanism for replacing the buffer is relatively crude, the code only performs just enough logic to manipulate the MSI generated by my Wix template. No guarantee if changes to the template will be successful, but may be ok if no additional files or binary streams get added.