fix(NgForm): use map notation for controls and dot notation for instance properties
fix(NgForm): always return the first matching control when using map notation on a NgForm instance
feat(NgForm): provide access to non-uniquely named control instances via form.controls

Closes #642