[wip] Spawning pool

Time to shave off that final 2-second delay. This PR implements #32 by pre-launching a configured *(by which I mean hardcoded to "3")* set of containers and handing them out to incoming requests. When a container is culled for inactivity, it's scrapped and a new one is launched and added to the pool in its place.

If you hit `orchestrate.py` with a path already set (using a stale link, for example, or an appear.in-style link like #67 implements), you have a personal container created and linked as it happens now.

/cc @rgbkrk so he can see just how terrible this is right now, and suggest embetterment techniques :wink:

- [x] Remove any remaining now-dead code. Container launching should be centralized and managed by the SpawnPool.
- [x] Get culling working again.
- [x] Fix the race condition in the culling routine that causes the pool to grow without bound if the culling interval is shorter than the time that it takes to cull a container.
- [x] Display a friendlier message (meaning, not a stack trace) when the node is out of capacity. A non-200 response code might be useful for upstream load balancing, too. If it's possible, it would be neat to do things like fail over to the next node when 500s are received.
- [x] Since we're using the pool size as an absolute capacity, defaulting to zero is not optimal. `make dev` should probably default to something like 3, maybe.
- [x] Clean out existing containers and proxy entries on restart of `orchestrate.py`.
I ran into a race condition that happened if a `cull` execution started before the previous `cull` could complete. Basically, what would happen is that both `cull` runs would notice that a single container was due for replacement, the second removal would fail, but both of the replacement creations would succeed. Over time this would launch more and more containers.

I'm defending against it three ways:

1. By remembering which container removals are underway and failing fast on duplicates;
2. By executing all container removals in parallel during the cull cycle; and
3. By only launching a replacement if we aren't over quota.

I won't say there isn't still a way to fool it, though. The third point there should self-heal the pool over time, though.