Remove errant tabs from js
Change `range` trait to `_range`
Test case for setting only lower or upper, no sensible default so should be an error
Clean up validation in __init__