docs: update and improve docs for input, ngModelController, and guide/forms

In this PR:

- make it more clear that you should use $validators for custom validation (updated example in guide etc)
- adds explicit information what certain inputs require (Date object for input[date] etc)
- update outdated information (css class list, parse errors)
- explain how to override built-in validators (for ye olde Email regex discussion)

Feeback welcome, I probably have introduced typos and odd wordings.
This might be slightly misleading (i.e. giving the impresssion that if the original value is restored, the control wouldn't be `$dirty`). Maybe "has been interacted with" ?
(Just a thought - not even sure it makes it more clear.)