Fix broken year diff tests for Russia

Russia's zone offset is different on 1st of January (something we assumed
impossible in tests). Check to see if that is the case and skip the offending
test.

Fixes #1635 and #1612
Allow ISO-8601 to be passed as a format.

This commit allows the ISO-8601 format to be
passed as a format in the moment(string, array)
constructor. This is a preliminary commit as this
addition as yielded a few issues.
Fix the second issue

I've added a useFallback parameter to makeDateFromString. When not
supplied, the old behavior remains. When supplied and true, it does
not call the createFromInputCallback and instead returns an empty
config. This also seems to fix the first issue, it now plays much
nicer with scoring and precendence.
Add more relevant tests.

I've added much more relevant tests, checking the _f property
for the format that was used for parsing and _pf.iso in the case
of ISO.
Implemented suggested changes

`moment.js` now has a separate parseISO function which only handles
the parsing. `makeDateFromString` keeps the same behavior and uses
parseISO. The tests have also been refactored and moved into
their own function.
Support string value in add and subtract
Merge pull request #1687 from ichernev/bugfix/year-diff-ru

Fix broken year diff tests for Russia
Merge pull request #1704 from seriousben/feature/support_string_value_in_add_subtract

Support strings in add and subtract

@changelog
@section features
@description support string type for numeric values in add/subtract
Merge pull request #1693 from SBSTP/moment-iso-parse

Allow ISO-8601 to be passed as a format.

@changelog
@section features
@description support moment.ISO_8601 as a format in constructor, that would use ISO time format parsing