query: report an error when date:D fails to parse

Previously, a date:D query term was just ignored if D could not be
parsed as a date.
parse period expressions and date: more strictly

Period expressions and date: query terms must now be parseable all the
way to their end; we won't ignore unparseable trailing bits.
cli: smart dates must use a consistent separator

Along with the preceding commits, this means that date:2014-8/1 is now
parsed as 2014/01/01-2014/08/01 as intended, not 2014/08/01.
journal: add p suffix to date[time] parsers
journal: require consistent separators in a Y/M/D date

Date separators can be /, - or . but only one kind should be used in
each date. Eg we now reject 2014-8/1.
docs: note --average limitation
register: describe datespans briefly, like balance

Eg instead of 2014/01/01 - 2014/01/31, show 2014/01, as in a multicolumn
balance report. The data model is not very elegant, but works for now.