C# 4.5.1 (LINQ) solution to Week 2's problems

My solutions to the Week 2 problems.

I've included comprehensive notes in the doc headers for all the interesting methods so that others can see what's going on without needing to dip into MSDN every two seconds.

I've also gone into some length about my solution to the tic-tac-toe problem, as it sounded like I'd used a different approach to others in the group, so it might be of special interest.

The solution methods themselves are all inside the DefShef sub-folder, but I've supplied MSTest-based unit tests in the DefShef.Test sub-folder that actually exercise them all and prove the validity of my solutions.

All the code was originally written in Visual Studio 2012 with the .NET Framework 4.5.1 targeting pack installed, but recompiled in Visual Studio 2013. However I don't believe I'm using any elements of .NET that didn't exist in 3.5, so the code and projects should compile in anything down to Visual Studio 2010 so long as the projects are re-targeted to .NET 3.5.

Cheers,
Rob