Optionally use VMAC for index integrity checking

Using SHA-1 to check the index integrity takes up about 5% of the
runtime of git status (depending on the repository). We can do better
by using VMAC instead.  VMAC isn't really intended for integrity
checking, but it has the correct properties.  It is also approximately
5 times faster than SHA-1 on my machine.

Signed-off-by: David Turner <dturner@twitter.com>
Watchman support

Add support for filesystem view caching and updating via Facebook's
Watchman daemon.

Signed-off-by: David Turner <dturner@twitter.com>
hashmap: Remove unused functions

Remove str(i?)hash functions from hashmap.c as they are unused

Signed-off-by: David Turner <dturner@twitter.com>
hashmap: Use SSE to speed up hashmap

The original FNV hashing algorithm processes one byte at a time.  SSE
lets us process more.  This is a lackadaisically tuned implementation;
in my tests, it was the fastest by a hair.

Note that you are unlikely to see speed improvements in test-hashmap,
since it uses very short, very similar strings.

Signed-off-by: David Turner <dturner@twitter.com>