Fix #447 NAN in a document property

* Modify CBLCanonicalJSON to check NaN value and return an error when there is a NaN property in the document

* Update CBL_Pusher, CBL_Replicator, CBLDatabase, CBLView+Insertion, and CBLView+LocalDocs according to the fix

* Add unit tests to validate the fix
You don't need to pass the error parameter around in the internal methods; just set the `_error` ivar at the place where the error occurs.