Included union and intersection in _view/type-year.

If queried with group=true, the value changes to an object with the following
properties:
- 'one': minimal range-object that covers the ranges of each document,
- 'all': largest range-object that is covered by each document's ranges.
Changed _list/tabulate to send ids for ungrouped rows.

That happens if either one of group_level or group=true or reduce=true are part
of the query string. I've let send_fields decide what to do on its first call
and then stay with this decision.
Improved performance of pre-filter to _view/type-year.

I used value.one and value.all to get one set of keys that goes to
_list/tabulate/type-year and one that goes to _view/type-year (both with
reduce=false) directly:
- If options.time is isolated from value.one, we can skip all documents of this
  key.
- If options.time contains value.one, that means that no document time with
  this key could ever be isolated from options.time. We can throw in all these
  documents without any further checks.
- If value.all contains options.time, that means that every document time with
  this key has to intersect with options.time.