Allow ISO-8601 to be passed a format.

This commit allows the ISO-8601 format to be passed as a format in the moment(string, array) constructor. This is an attempt to make #1680 possible.This is a preliminary commit as this addition as yielded a few issues. This is not ready for merge.

Here are some of the issues:
* `makeDateFromString` does not play nice with scoring (might be due to the way I implemented it)
* scoring cannot currently be tested because `makeDateFromString` shoves what it doesn't know into into `createFromInputFallback` which has been modified to throw always throw an error in the test suite.

I will probably try to add an optional parameter to `makeDateFromString` which tells it to not use `createFromInputFallback` to fix the second issue.