Validate OSK struct size and don't do copying.

The PSP itself only allows the correct size struct.
Add more error checks for OSK, fix field length.
Prefill the OSK when requested to.
Toggle keyboards for uppercase, as users expect.

Also should make l10n here easier.
Improve the UX in the OSK just a tiny bit.
Merge pull request #1405 from unknownbrackets/osk-fix

Fix stack corruption from OSK, improve UX a bit