CreateChildSound did not check for nullptr return from
soundbank::make_handler, which would happen for sounds with no grains.
Prevent further problems with this by switching to optional instead of
passing nullptr.
Supports most of the grain types now while maintaining compatibility
with the old stuff (at least the subset of things jak1 uses)
Would benefit from some testing in Jak 1 to make sure I didn't break
anything.
Sorry the git history is a mess, I'll do something about it later.