Add support for variable block sounds

This adds support for blocks to override the default placement sound with both variable volume and pitch. I created a new BlockSound class that encapsulates these values and can be overridden should a block need variable volume/pitch/sound etc. The pitch has a slight random deviation of +/- 0.25.
Why BlockSound as class name? With little changes it can be used to play Songs to players / general locations. So sth. more generic would be nice (maybe GlowSound?)