Refactored Autoload system

Autoload now uses kernel events to watch files on disk. This greatly increases performance and reliability. It will also watch `user.json` files for changes and reload them when they do.

I've also added a listener for `SIGHUP` which is the signal used by most POSIX services to trigger a reload of configuration files. If you `kill -s SIGHUP <pid>` (where *pid* is the PID of `node`) Shout will reload all `user.json` files. This is handy for writing `init.d` and `upstart` scripts.