very basic spawn() added, no waterfall starup processing yet.

I'm not sure the best way to do the waterfall startup, because we can't just wait for the single previous input anymore. signalStarupCompletion has to wait for every single semaphore. That means we'll need a macro to go through filterParams and pick up every input thread and call a sem_wait() on it.

blegh