Generates a hash code for a BsonValue instance, that respects the equality rules documented in BsonValue.
This method may be used in BsonValue implementations as a default implementation.