reaction.gene_reaction_rule sets gpr

Instead of calling the function add_gene_reaction_rule to set the gpr,
the gene_reaction_rule can be modified directly, and the setter
automatically will call the gpr parser. This is safer because the gpr
could previously be modified with no effect.

The gene_reaction_rule information is now stored as
_gene_reaction_rule. In order to preserve pickle compatibility, this is
now accounted for in __setstate__
add some unit tests for raection GPR's
one more unit test for reaction gpr
views to read only properties are read only

use frozenset for reaction.genes and dictrpoxy (if possible) for
reaction.metabolites
give species a readonly reactions property

Can be used to get a read-only view of the metabolite reactions
typos in Reaction.py
remove old maps module
add visbio documentation

Examples on how to use visbio with cobrapy to visualize maps.
link to notebooks properly
examples use create_test_model
introduce SMatrix class for sparse S matrices

SMatrix detects __setitem__ and updates reactions when the matrix is
changed.

SMatrix is only implemented for dok (for now)
Merge pull request #56 from aebrahim/remove_old_maps

Remove old maps module
Merge pull request #57 from aebrahim/arraymodel

ArrayBasedModel has updateable arrays and matrix
Merge pull request #55 from aebrahim/reaction_clean_gpr_setter

Reaction clean gpr setter (continued 2)
Update visbio.rst

Fix links (convert from markdown to rst)