Monstro/Bandlimit updates

I got to the conclusion that generating tables at octave intervals isn't sufficient for proper quality bandlimited waves. So now we're generating approximately at half-octave intervals.

This takes a bit longer so I moved the generation away from main and put it into the instrument constructor, while adding a check to ensure they're only generated once. This way the genertion time doesn't hold up the whole program and only those who need them have to wait. Although maybe we can still consider switching to doing this compile-time somehow, at some point.

Also switched to cubic interpolation. Sinc would be preferable but I can't seem to figure out how to implement that, yet.