Should not be able to collect on non grouped queries

@pbadenski
@gtrogers
First draft of collect functionality for read API

@gtrogers
@pbadenski
End to end 'collect' for single group_by

@robyoung
@pbadenski
"pending" sounds much better than "wip"

@robyoung
@pbadenski
Use an empty list for bucket collect default

The previous default value of None is an invalid collect argument for the repository.

@pbadenski
@robyoung
Collect for perioud grouping queries

@robyoung
@pbadenski
Refactor nested_merge

Extract the collection of 'collect' fields into separate methods to
make it a little clearer what's happening.

@robyoung
@pbadenski
Throw 400 if collect is an invalid field

@pbadenski
Collect should return a list of unique values

@pbadenski
Make order of collected values impl. independent

@pbadenski
MultiDict is required instead of dict

@pbadenski
Should not allow to collect internal fields

@pbadenski
Fix collect regex to prevent DOS attacks

@robyoung
@pbadenski
Merge pull request #29 from alphagov/read-api-collect

Tests pass and works with limelight the newest limelight branch so merging.