Use primitive loops instead of Array iterators for performance. Throw InvalidPatchOperationError when a copy patch attempts to copy from a non-existent path.  Improve jsdoc