minor build polishes AND REPAIRED BROKEN SEMAPHORE USE

this pull request contains

- REPAIR of missing semaphore usage in Object.cs, leading to CRASHES. The semaphore lock(Objects) was only used PARTIALLY, which led to crashes here when acessing that object from multiple threads.

- backport of Visual Studio build process from master codeline to 2.12 release codeline, so building from there or from MonoDevelop or Xamarin Studio becomes easier

The fix in Object.cs is important and should be taken over, please.