Non boolean values are accepted and they break UI

The boolean input component should only ever have the value of `true` or `false`. This means type-checking on value set, and changing the default from `null` to `false`.
Added a test.