Ruthie's Ajax scheduling upgrades

Remake of #724.

Original description:

This is the partial result of Ruthie's long-term project to improve Ajax scheduling:

    Added a more flexible 2-column UI
    Added a change log
    Added several types of filters for class directory
    Added both backend and frontend (Selenium) tests

This should be tested, reviewed and merged in the next week. Hopefully this will be easy since the code looks fairly mature.

I'll let Ruthie comment more as she sees fit.