Store user statuses server-side, automatically set as offline
Fix message wrapping finally
Add auto-scroll, join button, add channel dialog
Refactor errors to util package so gRPC errors can be detected,
also stop sending private keys to the server lol
Update copyright, fix scrolling to bottom
Fix build for JDK 8
Motivation is BACK (thanks to spirrwell)
Fix bug in message body JTextArea not resizing to proper height.
Used the size of the JList passed to the ListCellRenderer to calculate the proper number of lines,
a more efficient way to do this may be necessary as currently with very large numbers of messages
there are a lot of calculations done per update.
Add public group documentation
Remove string block to work in Java 8
Use JViewPort stateChanged listener instead of scroll listener, infinite scrolling works but is janky
Add attempted scroll positioning based on ratio of added items
Add client side message loading, "infinite" scrolling
Also fix race condition bug caused by updating ListModel in a separate thread. Apparently
updates can only happen in the swing thread.
Store message logs server side
Fix SignedAuth incorrectly encoding PrivateKeys, signed messages work
Add server side signature validation, server-to-server key sharing
Use IconLoader#createUIAwareIcon in ColoredIcon instead of manually choosing color.
Add UI to set user status, fix bug in StreamingListModel
TODO: introduced performance issue in StreamingListModel, need performant way to look up index in