## About The Pull Request
Ports @PowerfulBacon's 516 screentip fix (changing `cursor_hints.dmi`
from 8x5 to 16x16) from
https://github.com/BeeStation/BeeStation-Hornet/pull/11938
there's some weird spacing issues, but it _works_ at least (i would
greatly appreciate someone figuring out how to fix that, tho).

## Why It's Good For The Game
i want my fancy icons back
## Changelog
🆑 Absolucy, PowerfulBacon
fix: Screentip icons work on the latest BYOND 516 again.
/🆑
* Feeds OOC messages back to client if blocked in validate_client() (#81769)
## About The Pull Request
Basically, if your long and well-thought-out OOC message gets eaten due
to your client not being fully initialized, the server will feed back
the message to you so you can copy-paste and try again.
In order to facilitate this, I turned `validate_client` into a proc.
This didn't have the ubiquitous usage that we were hoping for (where it
could be dropped and placed anywhere) and I don't think I liked the
"always exit out of proc" stuff anyhow. Also adds some code niceties.
There's probably a way cooler way to do this with tgui_say and whatever
but I don't use tgui_say (byond command bar my beloved) so we'll cope
with this.
## Why It's Good For The Game

Let me know if I should revert the `span_big()` stuff, I just added it
because I wanted it to be obvious to the player instead of look like a
generic error message.
## Changelog
🆑
qol: If your OOC message gets eaten due to some weird circumstance in
how your message is handled, it will feed the applicable message back to
you so you can copy-paste and try to send it again.
/🆑
* Feeds OOC messages back to client if blocked in validate_client()
---------
Co-authored-by: san7890 <the@san7890.com>
* Clients can't OOC until they have fully gone through `New()` (#74493)
People are able to send OOC messages before `client/New()` is able to
fully set itself up. Let's guard against this by re-using the variable
we set at the end of New() and blocking any usage of the OOC verb if
they aren't set up. I made it a define so we can use it in other spots
as well if the occasion should call for it.
Define included in this PR can be (and probably should be when someone
has time) replicated in other spots where we need it.
* Clients can't OOC until they have fully gone through `New()`
---------
Co-authored-by: san7890 <the@san7890.com>
* JSON Savefiles | Player Saves use JSON
* few fixups
* yeah this will need a migration in the future to use a different tree for skyrat stuff
* this can be null
* forgot to sanitize these ones
* TM st
* get it working
* Update code/modules/client/preferences_savefile.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>