Restructured some data classes to require less storage space.
Making use of cache when using Firestore.
Fixed a lot of bugs when recording sessions offline.
Denormalized some cloud data classes, so some queries takes less listeners.
Long sessions' paths now get uploaded in chunks instead of whole, due to them being very large (more than 1MiB, which is the limit for Firestore for the size of a document).
Closes #37