Add auto-save functionality, first version
Remove reader time from state, since readers are impossible to sync
Use Java's writeChars instead of writeUTF

This removes the extra characters that encoded the length of the written data, greatly simplifying the socket read process.
Use reader-server timestamp instead of firstSeen and lastSeen

The readers cannot sync their clocks with a time server, and programmatically setting the clock is not possible with LLRP (or not documented at least). Reader-server time will be good enough as long as the network lag between the reader and the server is low, and we don't do bath processing.