first pass at backend

omg, look at all the horrible code!!
...but at least it does the bare minimum:
 * clicking save saves data to the db and puts the new key in the url
 * refreshing on a url with a key after the hash will load that data up
 * saving with loaded data will overwrite existing data

annoying todo : doesn't detect when the hash is changed by the user.
you have to change it and then click refresh.