moved code to mark just-built target as not missing and not out of date to a more logical place
access to fields now locked in building phase as a prerequisite to parallel building
Merge branch 'master' into feature/parallel
another prerequisite for parallel building: each build_if_required call is now done holding a target-specific lock. During the first call, no other thread can mess with the target while it is possibly being built. Subsequent calls return almost immediately because the target has now been built.
added TODO's lining out the next steps for parallel building
Merge branch 'master' into feature/parallel
Enabled parallelization - existing tests are passing, but new ones provoking races are needed.
Merge branch 'master' into feature/parallel

Conflicts:
	produce
Merge branch 'master' into feature/parallel
Fixed after merge: enabled worker threads to pass exceptions up, initializing locks earlier so they can be used in the pre-building phase for building depfiles.
Merge branch 'master' into feature/parallel
Merge branch 'master' into feature/parallel

Conflicts:
	produce

Tricky because the adding of targets moved from Production.__init__ to produce
in master, but I think we got it right. The tests are still working. Of course
we still don't know if actually using more than one thread will work.
Some formatting, extra debugging output, TODO's.
Added sample test for easier creation of new tests.
Added test for parallelism.

Amazingly, it seems to work!