fix($observe): check if the attribute is undefined

Check if the attribute is undefined before manually applying the function because if not an
undefined property is added to the scope of the form controller when the input control does not
have a name.

Closes #9707
Closes #9720
refactor(Angular) use Object.keys instead of manually constructing array

Shrink dat coed ;u

Closes #9704
docs(tutorial/tutorial): instructions to install `npm` on debian

Additional package required for a Debian install

Closes #9749
chore($sniffer) remove Opera < 15 vendor prefixes and document it

Closes #9483
fix(inputs): improve "input" event emulation for legacy browsers

Fix "tabbing through input sets dirty" and "update after blur"
bugs. Prevent special keys, like tab, from triggering model
updates. Update $sniffer event test so legacy Opera can use
native "input" event (thus avoiding keypress bugs).

Closes #1206
Closes #9623