Added methods to ISpecification so we could return that instead of a Specificaiton object

Also made static methods for creating a new specification from 2
specifications

var spec = Specification.Add(new Spec1(), new Spec2())

or

var spec = Specification.Add(x => x.IsActive, x => x.UserTypeId = 1)
Cleaned up XmlRepository

For some reason, previously we needed to clone the internal list before
using it for the queries, but that didn't seem right anymore.  So I
removed it and made sure all tests still pass.