implement a large number of operations

- update to latest groundhog
- change StorableJson to be simpler and more easily worked with
- reorganize message query module
- reorganize and improve topic operations module
- start cleaning up imports in Routes.hs
- change out client side error type for better clarity
- implement some client calls to various operations

next steps:
- add timestamp field to MessageHandle
- make operation that constructs messages get the current date and time
- implement function for adding a user to a topic for use in operations
- implement sendInvite function
- add rudimentary subscription system
- fix client to handle no content responses properly
- finish adding operation calls to client