Ignore text node children of schedule TRs. Refactor ScheduleProvider.

Some change was made in the rendering of the schedules page such that
there were text nodes containing whitespace, mostly some spaces and a
newline, and tr.children was returning those intermixed with the TD
nodes. tr.element_children will ignore those text nodes and just return
the TDs.

I took the opportunity to clean up the code a bit as well.  :)