**Summary**
macOS tests on Travis CI keep timing out and they run very slowly. This patch attempts to solve this by doing the following:
- Use ramfs for `__tests__` folder and for `$TMPDIR` for faster file system
- Remove unnecessary `brew update` and `brew install yarn` commands
- Remove unnecessary `--max-workers` argument since all CI VMs have only 2 cores
- Clean up tmp folders per test after they are done
- Fix `link/unlink` test's race condition and previous test case reliance
- Fix `request-manager` timeout tests to be more reliable and finish in under our normal timeout
- Use real timers by default and add necessary `useFakeTimers` calls
- Increase heap size for Linux and OS X to 4 GB since OS X builds were crashing due to limited heap space
- Removes retries from Travis CI
**Test plan**
All tests on all platforms should pass and pass in about 20 minutes max.
* add prettier and prettying everything
* fix scripts and run yarn prettier
* fix scripts again and run yarn prettier
* use eslint-plugin-prettify instead of custom scripts
* update eslint, babel-eslint, eslint-config-fb-strict
* update lockfile
* downgrade babel-eslint, remove eslint-config-fbjs because the latest is incompatible with the latest of eslint-config-fb-strict, update eslint-plugin-flowtype and eslint-plugin-react
* Convert unnecessarily async functions into normal ones
* Remove explicit Promise returns from async functions
Returning an explicit Promise from an async function is doing unnecessary extra work, since the resolved/rejected value has to be denested. It's better to just return a value (or throw if it's a rejection).
* Add lint rule no-async-without-await
* Rename --quick-sloppy flag from `kpm check` to --integrity
* Make --save implicit when installing new modules, remove strict lockfiles, always create updated lockfile and populate tarball cache
* Add integrity hash check to `kpm install`
* Update kpm.lock
* remove incorrect assert messages
* split up package resolving and fetching
* update kpm.lock
* clean up activityStep, move back cursor at end to cover worker lines - fixes#262
* use fake jest timers
* remove old test
* add mocks to jest test ignore
* fix test fixture lockfile
* Add lockfile version header - fixes#280
* split up `kpm install` into `kpm add` - closes#284
* fix lint
* fix using `latest` tag when adding new dependencies - fixes#263
* clean up kpm entry files
* add useless `kpm version` command
* rename config.js to Config.js
* remove Makefile and switch to simple npm scripts
* add more flow-typed definitions
* correctly case Config file
* fix misc lint
* fix type annotation of PackageConstraintResolver#reduce
* fix bin/kpm nits and unused variable
* use dashed filenames instead of camelcase
* move add command fixtures to separate folder
* hoist common-mirror test folder
* makes trunk green
* returned bablerc back
* extracted failing test
* removed package.json test because we need to clear all properties with arrays and this makes the test fail unexpectedly
* case fix
* Move fixtures.
* Update to Jest 14.
* Don’t track temporary files because of permission errors.
* Fix flow errors.
* Use node4 transforms for tests so they work on travis.