Modify ProjectItem attributes supports saving
Modified items are preserved

A modified item if looked up again via CsProjFile.Find was discarded and
a new instance for the same value of include was being created.
Expose MSBuildProject as a property

I've found myself iterating through solution and project types, and
creating new instances of MSBuild because I can't access the private
field. Why not just expose it.
Option to preserve item order when save a project file
Only save if changed (with minimal change settings)
Merge pull request #77 from ewilde/master

Modifying ProjectItem type attributes supports saving