genes objects tracked when setting gene_reaction_rule
use query.get for get_by_id

This is both faster and prevents instant garbage collection, which was
creating the need for temporary variables to cache get_by_id results
add cache function to make access faster
attempt to pickle gene_reaction_rule, very slow though