DATAMONGO-774 - Support SpEL expressions to define projection operations in the aggregation framework.

ProjectionOperations can now be built using SpEL expressions as this significantly shortens the code needed to express the project, especially for slightly more complex mathematical expressions.

Projection now has an ….andExpression(…) method that takes a SpEL expression and optional arguments that can be referred to via their index, i.e. a SpEl expression "5 + [0]" can be expanded using ….andExpression("5 + [0]", 7).… so that the projection can be prepared and dynamically get values bound.

Original pull request: #81.
DATAMONGO-774 - A round of Jürgenization for SpEL support in aggregation framework support.

Introduced dedicated spel package and extracted value objects to encapsulate and express information about the node transformation in a more semantical way.

Moved a lot of the logic contained in the SpelExpressionTransformer into the value objects for cohesiveness and testability. Updated Sonargraph architecture model to reflect the new packages we've introduced.

Original pull request: #81.
DATAMONGO-774 - Added usage examples for SpEL expressions in projections to the reference documentation.

Original pull request: #81.
DATAMONGO-774 - Some polishing in the reference documentation.