Add globalScope hack to more reliably distinguish Node vs browser

See #2092: browser-based apps that have DOM nodes with the id
"global" were being detected as Node apps for purposes of assigning
moment to the runtime's global namespace.  This change is intended
to fix that issue for most practical use cases, hopefully without
breaking anyone's existing usage.

Algorithm:  If `global` is not defined, then we want to use
`window`.  If `global` is defined but `window` is not, then we want
to use `global`.  If both `global` and `window` are defined, then
we want to assign to `global` if `window === global.window` --
otherwise we assume that `global === window.global`, in which case
we want to assign to `window`.
Merge pull request #2117 from butterflyhug:global-scope-hack

Add globalScope hack to more reliably distinguish Node vs browser
Create fy.js
Create fy.js
Update fy.js
Merge pull request #2104 from robin0van0der0v:patch-1

Frisian (fy) language file with unit test
Add nuget publishing support
Merge pull request #2098 from ichernev:nuget

Add nuget publishing support
add ar-tn locale
Merge pull request #2097 from tunpixel:develop

add ar-tn locale
Add a special case for years in Hebrew locale

In Hebrew years that end with a zero except 10 (20, 30, 100, etc.)
use a different plural form, which is identical to the singular.

I added this form.

This is also used by the CLDR plural rules.
Changed if to else if

According to @tomer's suggestion.
Merge pull request #2090 from amire80:esrim-shana

Add a special case for years in Hebrew locale
add isBetween

closes #2087
Merge pull request #2088 from stoeffel:develop

add isBetween
Style changes in tests
Implement moment.fn.utcOffset, base moment.fn.zone on top
Add isLocal(), isUtc() == isUTC(), isUtcOffset()
Deprecate zone function in favor of utcOffset
Remove zone from comments