My hat goes off to Adrian Florea for his one line solution to the bit counting test:
System.Convert.ToString(value, 2).Replace("0", string.Empty).Length
I hadn't considered this approach, I've always iterated through the byte testing the on bits. That's a cool way to look at the problem and a nice use of the framework!