Loads project from memory if it exists instead of hitting db

Skips a lot of unnecessary hits on the database. I don't know if this
will cause any future problems where someone starts loading and receives
new paths while they are still loading the initial sketch. Maybe
socket.io is smart and only sends one thing at a time to a single socket
so that it's just queued up...

This still doesn't solve the memory leak -- Memory usage increases
slightly after every refresh of the same page (no edits). I think it's
related to either the stuff added for the front end tests or something
in socket.io not cleaning up old sockets as I get a new socket ID every
time that I refresh the same page.