Changed construction of BuildPlan to use ReaderWriterLock to fix threading issue that causes NullReferenceException

I ran into a threading issue where StructureMap.Pipeline.Instance.ResolveBuildPlan(Type, Policies) was returning null.  It appeared to be caused by a threading problem where the value would change between the check that it wasn't null and when it was returned.  This patch introduces a ReaderWriterLockSlim to make sure this doesn't happen.