Guard against null values

Since anyone can directly reference `DefaultParameters` directly, it's possible for a null value to be added (since you can bypass `AddDefaultParameter`. Doing so is almost certainly a programming mistake, but a `NullReferenceException` isn't helpful in this location.

We seem to have run into this somehow in high stress situations in our app and we're most certainly not adding nulls. It might have been due to weird multi-threading issues like those in #368 so I'm not sure if this is still a problem. I figured it doesn't hurt to have defense in depth.
:)