Identify entity_buy_requests vector, and distinguish job_mat_cats for wood
Add manager timer, counts down from 10 to 0 before processing work orders
Update a few dye-related vmethods
codegen: Make constructors of objects with vtables protected.

Due to some weird things MSVC does, it is tricky to instantiate them
properly, and it's best to use the df::allocate<T>() function at all
times. This change makes it impossible to use ordinary new by mistake.

Viewscreen needs a hack because it's included as a field in interfacest.