refactor compute type to use a alias_method_chain

This way it should be more clear what we are doing and what AR is doing
FIXME - have to reference Post as ::Post in has_many expressions in discussion