Add soft shadows

Add random cone sampling for directional soft shadows
Use Vec<u8> instead of [u8, ..n] to prevent stack overflow
Add simple progress bar (inaccurate depending on resolution)
Add antialiasing sampling