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.
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