feature(json): add custom serializer

make it possible to store `bson.ObjectId` as part of document