Add saving the state to the server

The server is Firebase. If the location.hash is given, we use it as a
key to retrieve saved project from the server. If it is empty - then
create a new project on the server. Then, after every
tixi.mutators.shared/update-state! we sync data to the server, and
debouncing it with 1s interval.

To save some bandwidth and storage size, we compress the data to Base64
by https://github.com/pieroxy/lz-string