Fixed the bug in which timeline drag didn't cause data refresh

Previously, if the user dragged the timeline, the calendar bar text was
updated, but data on other tabs was not updated.  To reproduce this bug,
load a day in the timeline, switch tabs to List, switch back to the
timeline, drag the timeline to a different time range, and switch back
to List.  On the old version of the code, the List tab data hasn't
changed, even though the time range shown in the calendar bar has
changed.

I fixed this bug by making a call to fetchCalendar(state), which
loads the new data from the server, refreshing the data that will be
displayed when the user switches away from the timeline tab.  This call
is inside Calendar.changeTabState, which is currently only called from
TimelineTab.js, but may eventually be called from other locations.  This
way, Calendar.changeTabState neatly updates the state of the world to
match the state argument passed to it.

I also added a bit of code to update the title of the page, so the
browser's display of the title matches the date and tab shown on the
page.  I refactored one line of code from Calendar.renderState into a
new setDocumentTitle function, and then called that function from
Calendar.changeTabState.