fix(input): ngMinlength/ngMaxlength should not invalidate non-stringlike values

A regression reported in #5936 shows that prior to cdc4d485a6daa0c74e5d07d8def2a3ee68d93d13, an input with an ngMinlength or ngMaxlength validator would not invalidate values where value.length was undefined.

This patch addresses this by making use of the Infinity global when a value's length property is undefined.

The behaviour of this validator is still incorrect in the case of objects with a length property which are not arrays or strings, and will most likely remain that way. This cannot change as it is possibly desirable to use ngMinlength/ngMaxlength in conjunction with ngList.

Closes #5936
Closes #6000