Updating Associated Metadata Provider to follow the existing pattern.

cc @dougbu @rynowak 
part of the issue here is `SplitString` trimming entries and returning `IEnumerable<string>` instead of `string[]` (perhaps using `StringSplitOptions.RemoveEmptyEntries`).  (side note: why don't our `IModelBindingPropertyInfo` implementations throw on strange strings such as `"  ; "`?  this code seems to handle errors that should have led to earlier exceptions)

the other part is that we should use more readable code such as `FirstOrDefault()` and `Skip(1)` until we've demonstrated a performance issue.