Value fixes

This PR fixes some errors with Cairo types in signals because these are no value types and the default constructor does not take a ref.
This causes the following warning:
./Value.cs(580,37): warning CS0472: The result of comparing value type `bool' with null is always `true'

IsDefined returns a bool, so I think it should rather be "... && !val.GetType().IsDefined (...)"