* Manual Xcode project fixups
* Remove `firebase/firestore` from paths in Firestore/core
This renames all Firestore files under `Firestore/core` to remove the
interior `firebase/firestore` directory structure. This is motivated by
build failures under Windows where the filenames of intermediates were
too long.
Concretely:
* `Firebase/core/src/firebase/firestore` becomes `Firebase/core/src`
* `Firebase/core/test/firebase/firestore` becomes
`Firebase/core/test/unit`
Moving the tests into a `unit` subdirectory aligns Firestore with the
directory structure in
[AddNewPod](https://github.com/firebase/firebase-ios-sdk/blob/master/AddNewPod.md),
modified for C++ (see discussion in #3224).
* Added fuzzing script to run all fuzzing targets on cron jobs.
* Added travis fuzzing script and `FUZZING_DURATION` to control fuzzing time.
* Given a total fuzzing duration, select 1 target to run for half of
the duration, and divide the remaining duration over the rest of
targets equally.
* Added `FIELDPATH` to the list of available fuzzing targets.
* Added fuzzing method for creating `FIRFieldPath` objects.
* Added corpus and dictionary for `FIRFieldPath`.
* Added fuzzing targets read from env variable.
* Refactored Serializer fuzz tests in a separate file
* Separate header file for each fuzzing target.
* Write crashing outputs using `artifact_prefix` flag to `NSTemporaryDirectory`.
Created `Firestore_FuzzTests_iOS` Xcode target as a duplicate of the target
`Firestore_Tests_iOS`.
- Added `-fsanitize-coverage=trace-pc-guard` to the compiler flags to enable
code coverage by libFuzzer fuzzing driver.
- Modified the files to compile to the fuzz testing ones.
- Added a Principal testing class.
* Modified the `Podfile` to include `LibFuzzer.podspec` as a dependency for
the target `Firestore_FuzzTests_iOS`.
* Added a skeleton for fuzz testing. Currently does not test any code but
the fuzzing works fine and calls an empty `LLVMFuzzerTestOneInput`
with different input values.
- This means that fuzzing does not finish or crash.