Throw exception when content _id is an object

An exception is thrown if the provided id does not match the content id, but only if the content id is a string field.  If the content id is a complex object, no exception is thrown but the document is indexed anyway, leading to problems with search later.

This fix adds an additional check for _id fields that are objects and throws an exception if one is encountered.

Fixes #3517