client: try immer in the Category store and port it to TypeScript
If not for the new helpers, documentation and types, this would be a reduction in number of lines of code, so I think this is a nice win. I'm planning to base more work on top of this for new sub-stores.