add missing semaphore usage.

the semaphore lock(Objects) was already used in SOME places,
but not ALL, which effectively makes it non-functional at all.

when multiple threads access this dictionary to get access to gtk objects,
the "Objects" dictionary breaks because of this.
backported the build process for Visual Studio or MonoDevelop or Xamarin from the "master" codeline to the "2.12" codeline.

this way the code can be built for example using

- Visual Studio 2010 on Windows
- Visual Studio 2012 on Windows
- Xamarin on Windows
- MonoDevelop 3.0.3.2 on Ubuntu
Bump version to 2.12.23 and include new binaries.
Update to 2.12.24 and include new binaries to fix Xamarin Bug 16482
Bump to 2.12.25 and include new intl.dll
improvement of bugfix commit a3352e16ff48a216912d8b9d635b037a3e856287 : applied coding styles (moved opening parentheses to same line)
Merge branch 'origin/gtk-sharp-2-12-branch'
ignore *.pidb

Change-Id: Ieacd9ab5275fa7743ae76d1952c8c9b48a13ffca
Merge pull request #70 from MinnieTheMoocher/gtk-sharp-2-12-branch

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