This commit has a lot of changes to the sb_login.js file.

Basically, I've boiled down the mechanic for handling hashchanges for both
sb_login and sb_index. The result is seen in the current iteration committed
here. Every time the hash of the window changes, a function called onHashChange
is run, which interprets the current hash and dynamically displays HTML based
on that hash.

This is just javascript and jquery, no other libraries used.

We can now view any schedule at the url #schedules?sid=x where x is some valid
schedule sid. No error handling is implemented for schedules that do not exist.
We can also view all of the buddies of a current user at #buddies and all the
schedules of a current user at #schedules.

Next steps should involve creating forms to post this data (add buddies,
schedules, and commitments to schedules), and figuring out how to overlay
schedules on top of one another.