Remove html5 number inputs (unreliable at present, locale issues), add JS validation for price inputs. New price input type in settings API to make future changes easier to implement. Closes #3587

@coenjacobs hows this look?