Add pad/lunch information to status bar

Added information on the pads and lunch values to the status bar.
Support diary file

It is now possible to drag a diary file and drop it on the page and have
it parsed for keywords and durations.  Diary file durations are
displayed next to the measurement durations.

This is not a very clean patch, but it works.  I wanted to commit first,
rather than wait after having cleaned it up.  Also, there is a
.arrayFirst that assumes that there is only one entry per day, which of
course is an invalid assumption.
Remove display of file

The web application no longer display the dropped and parsed file.  It
is not needed since the file is readily available to the user in
Notepad.
Improve web application layout

The layout of the web application is much improved, with proper column
summary at the bottom and a more usable header.
Lunch duration is 40 minutes

The web application now set the lunch duration to 40 minutes instead of
30.
Web application refactor

Removed code duplication in the Javascript view model.
Web application refactor

Removed some more code duplication.
Web application refactor

JSLint cleanups.
Web application refactor

We no longer keep track of duration values on the week objects. Instead,
the duration and parser duration values are knockout (pure) computed
observables.

Also, the day objects now use computed observables for the display
duration value.

This commit also includes a change that makes the parser duration column
display the duration if there are no explicit durations in the diary
file.

This commit includes an update to knockout 3.2 so that the new and
improved pure computed observables can be used.
Mark keyword values with explicit duration

If a keyword duration value is not explicit, but based on the duration
of the measurements, that value is now displayed in a light grey color.
This makes the values that have explicit durations stand out.
Handle days without entry in diary file

If a day is not present in the diary file, it is not displayed
in the keywords column.
Update keyword duration for today

If today does not have an explicit keyword duration, but have a
diary entry so that the value is inferred, we now update the
keyword duration value as new measurements are received.
Web application refactor

JSLint cleanup.
Multiple keywords in diary

If a day contains multiple keywords in the dropped diary file,
the web application now properly sums the explicit durations up,
as appropriate.
Display of date range

The web application now correctly display the date range, when there is
a week that cover more than one month.  It would previously just would
display "transit".
Month summary

Summarize keyword information into a summary by months.
Month summary cleanup

Simplifications and JSLint cleanups.
Live update month summary values

The values in the month summary now updates as measurements are
received (the clock is ticking.)
Code cleanup

Left some debugging code in there.
Sort months

Months in the summary are now sorted with the latest entry first.