gdk: It is valid to pass a null gdk_event sometimes

For example gtk_drag_start allows a null Gdk.Event so we need to marshal
it to IntPtr.Zero instead of throwing a NullReferenceException

Cherry-picked from the gtk-sharp-2.12 branch.
gtk: Handle a null Gdk.Event passed to CellRenderer.StartEditing()

Cherry-picked from the gtk-sharp-2.12 branch.
build: Update and remove some obsolete automake macro calls
cairo: Added SetSourceColor method to Cairo.Context.

Cherry-picked from the gtk-sharp-2.12 branch.