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
dipping into MSDN every two seconds.
Merge pull request #2 from RobAshtonUK/master

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