Add checkValidity, arrow keys, classes, and propTypes to NumberInput

Test Plan: in two commits, you'll be able to test them all on number-line
1) See that arrow keys don't work at default
2) See that they do when useArrowKeys={true}
3) See that checkValidity causes the invalid class to show for invalid input
4) See that size works
5) See that there are no warnings given due to propTypes

Auditors: jack