Refactor aggregates as ExpressionNodes

ExpressionNode now evaluates itself, allowing removal of SQLEvaluator

Implemented relabeled_clone for spanning relationships

fix contains_aggregate to work with non F() objects

All tests now pass after removing SQLEvaluator

Implement the skeleton of aggregates as expressions

Expressions now support @add_implementation

All aggregates tests are passing but agg_regress failing still

most aggregation_regress tests passing again

all aggregation tests are passing

Fixed failing count() regression test with ColumnNode

source and output_field need to be treated independently

Some complex annotations and aggregations now work

fixed aggregation.field for sqlite

began writing tests for new aggregate expressions

added a variety of tests that showcase new features

Aggregation can now reference complex annotations

simplified the handling of aggregate source types

Adding more tests for complex aggregations

Refactor ExpressionNode to allow as_vendor extensions

Fix regression with check_aggregate_support

Aggregate expressions requiring extra group by columns are now added

Fixed flake8 issues

Vendors can now override how aggregates are rendered

Fixed some regressions caused by modifying aggregate in tests

Basic support for legacy custom Aggregates
Revert changes to pickle test
Filter works on non-aggregate annotations
Aggregate over non-aggregate annotations

Annotations now have own test module

Remove implementation comments

Test annotations work with update

Rename and change refs for property aggregates to annotations

Change all references of aggregate to annotation where appropriate

More annotation tests

Tests for annotations on MTI models

arrange imports a little better
Fix merge errors