First cut of assembly info patching and:

 - Introducing a Context class which can be passed around
 - Made assembly related variables more explicit
Catered for the scenario when exec and project file is not specified (changes are not undone after running)
Merge pull request #34 from JakeGinnivan/AssemblyInfoPatching

Assembly info patching (Fixes #23)