Implement HasteUpdateServer

1. Long running process for updating resource maps
2. Can run for multiple haste instances and resource maps
3. When a file changes it will be swapped out in our in-memory file list to be analyzed and updated on disk
4. Maps are persisted back to disks
5. A net server starts for querying status

Designed to be used by CLIs to start the server if not started. Will probably need a few changes come _real_ integration time (done some testing on devservers)
that and because the version of q we depend on (and is on our servers) doesn't have `q.Promise`