Introduce Aggregation.stage which allows to use a plain JSON String or any valid Bson representation to be used within an aggregation pipeline stage, without having to implement AggregationOperation directly. The change allows to make use of driver native builder API for aggregates. Original pull request: #4059. Closes #4038