Stricter temperature validation

* Restricts input to digits and `.`
* Sets min and max temperature to 0 and 99.99
* Normalises input to two decimal places, e.g.:

```js
.1042 => 0.10
9.8 => 9.80
```

Note, had to use `type=text` as the directive would not work on `type=number`