add emitter affinity

Addresses the bulk of https://github.com/facebook/libphenom/issues/21
I'm punting on mutiplexing scheduler threads on emitters for now,
simply because the current epoll() syscall implementation is a
limiting factor.

This commit does a couple of things:

* Factors the various system dependent emitter code out into files
  of their own
* Factors the emitters so that we can set up multiple emitters
* Create one emitter per scheduler thread
* Increases the size of the emitter event buffer; previously, we
  would collect only a single event at a time in order to be fairer
  to the rest of the scheduler threads.  Since jobs are now affine,
  we no longer have this concern.  (This comes at the cost of a slow
  job delaying all the other jobs with the same affinity)
* Adds `emitter_affinity` to the job struct; this can be used to
  set the affinity of the job (surprise!)
* Set emitter_affinity in iopipes.c
* Fixup the Illumos build

The affinity change gives us almost linear scaling of the dispatch
rate in iopipes.t as we raise the number of scheduler threads;
previously, we'd see a drop-off as we passed HT and socket boundaries
due to cache coherency traffic overheads.