cal: added -w|--week for showing week numbers

Added week numbers both in ISO-6801 and North America numbering.
The mode is determined by first day of the week, Monday
for ISO and Sunday for North America mode.

SO week numbers are defined as the first Thursday being part of week 1.
The North America numbering is defined, at least by gcal, as first Sunday
being in the First week.

Signed-off-by: Tommi Kyntola <kynde@iki.fi>
cal: tests for week number modes added

Current tests were simply replicated with -w, results were
compared to gcal output.

Signed-off-by: Tommi Kyntola <kynde@iki.fi>
cal: added more week number tests to cover various special cases

These tests verify the different possible first week and last week
variations.

Signed-off-by: Tommi Kyntola <kynde@iki.fi>