Fixed a bug where the script project reference could be added to the sln file
multiple times because of a case sensitive comparison of the project details.
Separated modifying the solution to include the script project reference and
extracting the template project into two steps.
Included System.IO.Abstractions to make file system testing easier.
Added some tests.