Hopefully fix race-condition in lb302 db24 switch

So, we were swapping out some pointer mid-process at times.  Instead,
use an atomic pointer, and just have the process function grab the
current value and use it through the entire processing period.

Still has a sound glitch when switching, but this switch was never
intended to be used "live".

Closes #353
Fix leak in last commit

Sorry dudes. This one really fixes #353