Change ControlState typedef to double, and change all related floats/dou...

...bles to use it.

Fixes an off by 1 issue related to double->float->double conversion, and eliminates numerous warnings.
Your change creates some warnings here. Add a cast to `u8` on these lines?