spec update and refactor
reduce logging noise and limit message size
protocol update: server sends the number of recipient keys, not length
remove rustfmt.toml
remove unused dependency 'base64'
remove unused dependency `rand`
protocol update

* server-side timestamps removed
* when sending multiple copies of a msg, client only sends length once
reduce timestamps to millisecond precision to comply with spec
lint and remove old docs
Automatically generate server keypair if not found
Revert "protocol update: bring back sender-side timestamps"

This reverts commit 05fdf3b12fb8cb6b767df0d0aa6d49e294edc5ec.
sort messages properly
protocol update: bring back sender-side timestamps
commit Cargo.lock
update gitignore
protocol update: transport encryption
don't reinvent stdlib APIs
protocol update: handle unknown recipient by returning 0 devices
support removing a device (untested)
protocol update: multi device support