Improve sizing and layout of main viewer window.

The month calendars within the main window now have fixed sizes. The
size can optionally be specified with the `monthCalendar.width` and
`monthCalendar.height` preferences. The spacing between calendars is now
also fixed, and the block of calendars remains centered in the main
window as it resizes. If there are three or fewer month calendars they
occupy a single row.

The size of the main window now defaults to a size that just contains
the window's contents. It may optionally be specified with the
`mainWindow.width` and `mainWindow.height` preferences, but these are no
longer required.