glib: In Value.Update, check if val is null before updating

Signed-off-by: Bertrand Lorentz <bertrand.lorentz@gmail.com>
csproj: Fix assembly names and include *.dll.config in output

Signed-off-by: Bertrand Lorentz <bertrand.lorentz@gmail.com>
gtk: Use the same behavior in Builder constructor overloads

Each overload needs to call Assembly.GetCallingAssembly () explicitly,
otherwise the calling assembly would end up being gtk-sharp.
gtk: Fix Builder xml definition loading

Gtk.Builder crashes when AddFromString(string) is called with a string
that contains a BOM. Hence, if the buffer contains a BOM, just skip it.

This fixes the crash with the Gtk# 3 project template in MonoDevelop
(robpvn/MonoDevelopGtkSharp3Template).
glib: Check for self-assignment of Opaque.Raw property

This avoids unnecessary work, and prevents the IntPtr from being
freed when assigned to itself.

Signed-off-by: Bertrand Lorentz <bertrand.lorentz@gmail.com>
No need to rename glue-dlls. - already have the correct name
Use Gtk# 3 specific reg keys to enable side-by-side version install

I've renamed the registry keys to allow painless side-by-side installation of different Gtk# versions (v2 and v3). This
is actually a bug in the current version of Gtk#2/3, but I haven't found a bug report about it. If Gtk# 2 and Gtk# 3
were installed side-by-side, they would both refer to the same reg key (GtkSharp). If either one of them had been
uninstalled, it removed the reg key leaving the other installation somewhat crippled.
Improve GLib.Application API a bit