Finished first stage refactor.
Adding first set of tests for refactored code.
Renaming mpsc_blocking -> qoq.
Renaming mpsc_impl -> mpscq.
Moving headers into an internal directory.

This should reduce the number of installed headers, or at least one hopes!
May still be more reorganizing later as I haven't tried to run the benchmarks
again yet, so maybe some things that were moved to internal need to move back.
Fixing more relocations.
Expose notifier again.
Cleaning up/rearranging sync_data/executor API.
Shifting implementations from processor to stask.

The implementations were just renamed previously, but left in processor.c.
Now they have been moved to sched_task.c.

Also some associated dangling declarations in processor.h have been removed.
Starting sched_layer test suite.

Adding extern "C" to required header files.
Fixing autotools warning about using CXXFLAGS directly.
Fixing various memory leaks.
Use pthread_exit to quit notifier, if required.

This shouldn't be strictly necessary but I think that its good to have all
exit paths out of a thread to be covered by thread_exit.
Rename de/register_proc to _task. Automate task registration.
Adding multi-task test.
Adding registering/non-registering sched_tasks.

The distinction is useful for executors which should be an stask except they
are not registered. Another option is to not make them stasks (just tasks with
a sync_data pointer), but I haven't fully thought out that option yet.
Split up the tests a bit more.
Fixing comment.
Using int32_t for num_processors.

This makes it easier to detect problems as negative numbers should be impossible.
Twiddling in executor a bit.