add missing semaphore usage, backported *.sln build from "master" codeline

this pull request asks for integration of 2 changes into the gtk-sharp 2.12 release codeline:

(a) there was an important semaphore usage missing in "Object.cs", leading to crashes when this dictionary was accessed from multiple threads. a semaphore was already present, but used WRONGLY

(b) backported the *.sln / *.csproj build process from the "master" codeline to the "2.12" release codeline. this way the code can be more easily built, for example using
- Visual Studio 2010 on Windows
- Visual Studio 2012 on Windows
- Xamarin on Windows
- MonoDevelop on Ubuntu
(all these have been tested)