Basic Injector class

create a class for injecting payloads
into an exe template as a new section
replace old inject method

replacing jsut the win32 inject method this time
with out new injector method.
Dry up the exe subsitution stuff

6 different methods were doing essentially
the same exact thing. DRY it up a bit
'remove unused framework references

passing around framework references that are never used
removing these whever possible
Revert "'remove unused framework references"

This reverts commit 98a09b9f5c427be8c84ce5ae13395d914a27ce43.
plug in 64bit injector

64 bit exe generation only had subsitution method
add the x64 injector in there too.
style fixups
remove dupe comment
Some more specs

added a few specs to validate the generated exe.
could use some more love, but it's a start
set edx as a BufferRegister

polymorphic encoders can now always use EDX
as a BufferRegister, making it harder to catch
the decoder stub.
Allow user supplied buffer register

let the user pick, otherwise default to edx
Merge for retab
Retab changes for PR #2278
Merge pull request #10 from tabassassin/retab/pr/2278

Retab/pr/2278
 better validation of buffer register
Merge branch 'spike/exe_generation' of github.com:/dmaloney-r7/metasploit-framework into spike/exe_generation
Merge branch 'master' into spike/exe_generation
fix merge conflict
Land #2278, exe injection refactor