Implemented toJSON function on Duration so JSON.stringify returns the ISO string representation of the duration
Fix duration.toJSON test
Add JSCS rule for consistent quoting style

Single quotes everywhere, except double quotes are permissible if
the string itself contains a single quote.  Because consistency is
good, but escaping is ugly.

Prompted by moment/moment#1749.
Add moment.duration.toString()
Fix frozenMoment references
Add moment.isDate method
Fix frozenMoment references
Moment creation with array of string now works properly
Fix test for creating frozenMoment from array of strings
Fix moment.utc with array of formats

Fixes moment/moment#1878
Fix test for creating UTC frozenMoment with array of formats
Fix moment diff across dst in weird cases

moment diff across dst was sometimes failing because of a floating point
rounding. Just make sure to first do additions/subtractions and then division.
Fix test for exact month diffs
Performance optimization isBefore/isAfter/isSame

- optimized performance of isBefore/isAfter/isSame by using valueOf and not momentizing/cloning already existing moment objects
- 90% performance improvement when using without specific unit and the input is already a moment object

reviewed by PatrickBic/tscheinecker
Clean up frozenMoment API usage in optimized isAfter/isSame/isBefore
make CI build faster
Floating point math errors in duration .as method output.
Tests for floating point errors in duration .as method output.
Fix whitespace
Fix test for floating point errors in duration .as output