Make cash trickle sound volume adjustable

...and use it to make TD and TS cash trickle sounds less annoying.
Hi. I wouldn't say it's "necessary" but there are two good reasons for it:

1. Null checks on API entry instead of (just) deep down make shorter and easier to understand stack traces. The whole code is in the same assembly here so it's less of a problem.

2. It's quite hard to tell which arguments are optional (can be null) and which can't. These methods should ideally have several overloads each instead of accepting nullable parameters. The null checks help understand what you have to pass and what not without digging deeper into the, even more undocumented, `PlayPredefined`.