New option "-c" to apply categorization regexes
Print footer for "-a" also when there's only one session

With just one session the footer was suppressed for aggregate display.  Now it
will be displayed.
Add option "-p" for displaying times as percent of total work time
DayRange: Add YYYY-MM format
report: Extract duration units to separate classes

This gives better separation, and it will be easy to add other units.
report.py: Pass worklog and day_range to constructors

On the way to MVC.
report.py: Extract print_content()
report.py: Store all sessions first

This fixes the bug with wrongly counted percentages in -d report for multiple
days.  Now total work time is counted on the whole ranges instead of only the
days from the beginning up to a given day.
report.py: Extract superclass from SessionDisplay

This new superclass doesn't deal with individual sessions, so it's a better fit
for the -a range display.
report.py: Percentages for -d are for one day, not whole range