Add range input support and feature detect module

Weren't we using input type="text" and then using the pattern attribute for number fields? If it makes sense in this case though that's fine