Removed quasi-filter item 'redo'.

I've never liked it and finally I can throw it away!!!
Used valid range objects as _view/type-year's reduce value.

The nice thing is that an empty ranges array actually stands for 'not any
time' in a way:
- intersects(r, []) == intersects([], r) == false
- contains(r, []) == true
- contains([], r) == false.
I can therefore remove the clumsy guard clauses from where row.value.all is
checked for its existence. The construction of the union has yet to be
provided.
Refined type-year key pre-selection.

That is, if options.time intersects with 'all' and if 'all' is within every
doc.ranges, options.time should intersect with every doc.ranges.
Not that it matters because right now it is empty.
I guess I have to rebase this somewhere.
Changed helper functions to give a hint if a==b.

Otherwise I'd have to work around the preference for a all day long.
Added intersection to _view/type-years reduce value.

It looks ok but I can never be sure if it works every time.
Fixed a bad bias in the reduce function.