Watchman exists to watch files and record when they change. It can also
trigger actions (such as rebuilding assets) when matching files change.

Concepts:

- Watchman can recursively watch one or more directory trees (we call them
  roots).

- Watchman does not follow symlinks. It knows they exist, but they show
  up the same as any other file in its reporting.

- Watchman waits for a root to settle down before it will start to
  trigger notifications or command execution.

- Watchman is conservative, preferring to err on the side of caution;
  it considers files to be freshly changed when you start to watch them
  or when it is unsure.

- You can query a root for file changes since you last checked, or the
  current state of the tree.

- You can subscribe to file changes that occur in a root.
