Json.NET 5 can't handle null values in extension data

Fixes #419 by exposing the extension data to Json.NET as one type, while preserving the original client interface unchanged.