Add test for -->count when using #:key

This functionality is currently broken. The idea is that -->count will give
the count of items which pass the given predicate specified with #:key. By
default (when #:key is missing) every item will be counted.
Correct contract for -->count
Correct agg-step/count by only counting items which pass the 'key' predicate
Use (const #t) for clarity as the default 'key' predicate for -->count
Extract core functionality to aggregate/base
Provide the generic aggregator functionality such as aggregator? and agg-val
Correct spacing for gather-by/values test
Use #lang racket/base instead
Start reference documentation in reference.scrbl