Added `newTypedSnakSerializer` to `SerializerFactory`

Why are the return types of all these methods so generic? (No reason to block this patch since it was like this before, just asking.) Nothing bad should happen if we use the correct types here.