Began implementing remote passthrough
Modified arduino.py to not error if arduino isn't available.
Serving old, static status screen from the new server
Integrated gridster.js
Server-side updating is partially implemented. Only Google Calendar and forecast.io work. Logic of whether to check for updates is flawed.
Forecast updating works correctly with the addition of APScheduler
Added requestStatus command to arduino
Lights status updates correctly

I am excite
Google calendar updating works correctly (Note that the update JS will need to check for the presence of calendar['error'] and redirect to /login if it is present)
Formatted index.html to support planned data-filling javascript (and added location to calendar api)
Fixed a problem
Added a utility to create a checksum of any message:
Run `python checksum.py message`, with or without quotes.
Lots, probably. I forgot.
Begin using Angular
Hooked up everything:

- Tabs and tab switching
- Automatic tab switching in auto mode
- The entire polling system
- Config object for configging
- Misc stuff related to the above

Next step is to get it most of it out of the main module, which is where it is now.
Modularized it. And nothing stopped working, even for a second!
Hooked up weather, and made it asynchronous to help speed up API calls. Note that google calendar is commented out until I make it asynchronous as well. Also added gauges.json before I forgot.
Skycons warns you if it couldn't find the skycon you requested (but ignores empty strings).
Finally got the Google Calendar API calls to be asynchronous. NOBODY TOUCH THAT CODE EVER AGAIN.
Got times working, local timezone only