Make Array.sum() tolerate undefined elements

Array.sum returns `NaN` if a array item is undefined.

[10, 20, undefined, 30].sum(); // "NaN"

This PR makes:
-  `Array.sum()` ignore `undefined` values
- more explicit in the docs that the method will return NaN if a
*non-number* is present in the array
- adds extra specs

##### PS: - All this is @timwienk 's credit & work!

fixes  #1114
Fix typo
Merge: fix documentation typo in Number.format

Docs example has switched `.` and `,` as pointed out in #1071.

If I would run that example I would get:

    "&amp;#165;123,123,123.18 (YEN)"

And in the example it states

    // returns "&#165;123.123.123,18 (YEN)"

fixes #1071
closes #1257
Merge: make Array.sum() ignore undefined values

Array.sum returns `NaN` if a array item is undefined.

    [10, 20, undefined, 30].sum(); // "NaN"

This PR makes:
-  `Array.sum()` ignore `undefined` values
- more explicit in the docs that the method will return NaN if a
*non-number* is present in the array
- adds extra specs

fixes  #1114
closes #1258
fixes #1199

Element.pin is buggy: http://jsfiddle.net/2n4Ad/

This fixes the documented behaviour.  Tested in IE6, 7, 8 , 11; FF &&
Chrome

There are more parameters/methods in Element.pin. They are NOT
documented. According to docs, .pin() takes just 1 parameter.
Merge: Element.pin posisiton fix

Element.pin is buggy:
Buggy example: http://jsfiddle.net/2n4Ad/
Fixed example: http://jsfiddle.net/2n4Ad/1

This fixes the documented behavior.  Tested in IE6, 7, 8 , 11; FF &&
Chrome

There are more parameters/methods in Element.pin. They are not
documented. According to docs, `.pin()` takes just 1 parameter...

fixes #1199
closes #1252