added interface serializer and support for top-level serializer specificity to allow for customer serializers to get injected/built at runtime.
Added support for Distinct<TValue>.
Integrate command results into the standard serialization protocols.
Merge Craig and Robert's work around CommandResults.