Ignore ValueError on loading JSON columns with invalid utf-8, instead log and return None.
Adapt the search indexer code to treat None values correctly.

Fixes T692.

Summary:
Python's native json loads(), dumps() fns. (wrapped by the bson.json_util library
we use) differ in how they treat invalid utf-8 - loads() is strict about invalid
utf-8 whereas dumps() is not. This can result in ValueErrors during decoding
JSON columns; merely log them for now.

We also adapt the search indexer code to treat the None values that can
now occur due to this change, correctly - we choose not to index objects
that could not be decoded rather than index incompletely/ incorrectly.

Note: An alternate, longer-term solution is to convert these problem values
into valid values and re-store in the database, but this should fix the
issue for now.

Test Plan:
Tested on prod - fixes the issue we were seeing on trying to start
the search-index-service.

Reviewers: emfree

Reviewed By: emfree

Differential Revision: https://review.inboxapp.com/D929