Valerie: added new interfaces; Knockout: fixed .register overloads

Valerie: added new interfaces; Knockout: fixed .register overloads, see #2732 
Also, I suggest to create possible interfaces for `template` and `viewModel` properties of config separately.
Then you can annotate `config` as inline type with all combinations of types for `template`/`viewModel`.
I think it would be more clear, since we have no type unions in TS yet.