refactor(NgValue): use the @NgDirective module feature

- Use the `@NgDirective` `module` feature to inject an `NgValue` instance into `OptionValueDirective` and `InputRadioDirective` when no `ng-value` attribute is present. This results in a much cleaner design since the `NgValue` `element` is still bound to its "containing" DOM element rather than being null.
- Update `ng-value` API documentation.