Support for parallel execution of ShouldSerialize and IValueProvider


In some scenarios, we use ShouldSerialize (and IValueProvider) to execute tasks that may benefit from parallel execution.  For instance, ShouldSerialize might check for role membership against a database.  This modification to the Serializer adds support to this with Parallel.ForEach().