Add notes about new architecture.
Add task management code.
Refactor task code a little.
Update gitignore
Add a basic REST API and clean up some code.
Fix some errors in API
Start task system on server start.
Update notes and start adding support for handlers.
Tidy up a bit
Add a basic Clojurescript client.
Add two sections: waypoints and events
Refactor a bit.
Add logic to draw section items.
Add render loop timer and heartbeat logic.

The application can now detect connection state to the server. It
currently polls every 3 seconds to see if the server is reachable; if
not, it switches to offline mode (currently just a global flag
change). There's no exponential backoff in this change because the
server is local and we don't need to worry about slamming it.

This change also introduces better defined separation between rendering
and state management - no state changes should originate from render
functions, and state functions should not change UI.
Remove logging from previous change.
Add more formal state handling logic and start saving waypoints.
Draw waypoints as circles on the canvas.
Make state updates truly independent of each other.
Make coordinate handling/conversions explicit.

Locations are handled in "world" coordinates, and drawing happens in
canvas coordinates. This change adds transparent conversion between the
two types.
Add support for rendering basic buttons & hover.