#336: added option to group tokens

Hi,

This is related to #336. I've added two options: `groupKey` and `itemGrouper`:

`groupKey` is key in the token which will be used to group items by (default: 'group')

`itemGrouper` is a callable that can be used to group items if the group needs to be computed (default: null)

Also added a demo showing how to group results alphabetically.

Results will need to be sorted to avoid duplicate groups.

Thanks.