[Soc2014] Official meta API

Ah! I see. I'm not opposed to some dynamic behavior for flags that actually are dynamic (that is, per-instance). E.g. I don't see a problem with a `has_relation` default of `self.rel is not None`.

I just think in the case where a subclass has a definite known static value for a flag, that subclass should simply set that flag to the static value, rather than having repeated `if` checks here. So basically all I am suggesting is that every case of `if self.is_reverse_object: return some_static_value` here should be removed, and instead `RelatedObject` should just set those flags statically. It's simply a case of the classic OOP pattern of "replace repeated conditionals with polymorphism."

Does that make sense?