Add ToS/License Agreement to Website
Refs #1047
A lot of changes are mostly clean up:
in the oasst_api_client, the functions have been re-ordered, to move the general ones at the top.
in terms-and-service, extracted the constant part out of the react component, to make it re-usable.
~~TBH I am not happy with this solution, because it kills server side rendering, since we fetch the tos status on the client side.~~
This PR is getting big, further changes will be addressed in the next PR.
I'm mostly ready to approve this but I wanted to ask if you considered embedding this tos acceptance stuff in the JWT and session? The check against the backend could happen anytime someone logs in and then the wrapper could simply check the session object rather than call a new API route.
I have not, I will poke around a bit and see if it is easily doable.