Illumos build/test fixup

Make a pass through to improve the status of our build/test on Illumos
systems.
arc feature should start at origin/master
refactor command registration and dispatch

This is a step towards some enhancements I'm planning for the watchman
CLI process.

Switch the registration from a central list of commands (and a separate
list for the client mode command set) to declaring the registration
details alongside the command function with some flags to indicate
whether it is permitted in client or daemon mode.

This can later be extended to include a CLI-side command preprocessor
callback that can do things like `realpath`ing the root dir on the
client side before sending a watch command.

We could also extend this to include a usage summary to be displayed
when `watchman -h` is invoked.

As part of this refactor, I took out the function call that initialized
the query expression term hash, so I applied the same principle to that
subsystem.
Move command registration funcs out of listener.c

Just a straightforward move of this code to a home of its own.
preprocess commands in the CLI

Adds a per-command callback that is invoked by the CLI prior to sending
a command to the server.

For commands that accept the root dir as the second parameter, we wire
up a callback that executes `realpath` on the root prior to sending the
command.  This makes it more convenient to use the CLI, as you may now
specify relative paths for the root.

This does not apply or have meaning to clients that are directly
accessing the socket, because they are bypassing the CLI.

References https://github.com/facebook/watchman/issues/33
try harder to reset cwd between tests

absroot.php is failing on travis but passing everywhere else :-/
more travis instrumentation
poke around in /tmp on travis
more sanity checks around cwd in travis/test
travis: also run make install

Gives us an opportunity to catch broken installation rules
fix compilation warnings in test code
add illegal_fstype global configuration

Summary:
Every so often we have to troubleshoot what looks like hung, stalled
or timed-out watchman processes.  These are typically caused by someone
watching an NFS mounted dir.   In the past, we tried to gate the software that
was setting up the watches to prevent it from launching on NFS, but that gating
isn't 100% foolproof.

This diff adds a pair of configuration options that can specify a set of
blacklisted filesystem type names and the site specific advice on what to
do if the dir they plan to watch is on the blacklist.

More details are in the README

Test Plan:
`make integration`.  Also manually attempted a watch in my VMs
(those mount my laptop via NFS) to confirm that they detect the filesystem type
names.

Reviewers: sid0

Reviewed By: sid0

CC: donguo, lifeihuang, joelb

Differential Revision: https://phabricator.fb.com/D1323424
some jekyll markup in preparation for some docs updates
more dashes in the markdown
Add full permalink to casefolding.html
Add full permalink to cookies.html
Create index.markdown
Create navigation.json
Remove double title from casefolding.markdown
Remove double title from cookies.markdown