Swapped all "dict"s for "recipe"s

Gave networks the ability to manipulate fluids. No longer need to create explicit fluid:
These scripts are equivalent:
(1)
air = OpenPNM.Fluids.GenericFluid().create(air_recipe)
air.assign_to_network(pn)
...
air.refresh_in_network(pn)
air.remove_from_network(pn)

(2)
pn.assign_fluid(air_recipe)
...
pn.update_fluid('air') #or pn.update_all_fluids()
pn.remove_fluid('air')

We might consider storing all recipes on the network. fluids and physics for sure. And maybe even geometry and algorithms? Then, we could follow this same framework and have network functions such as pn.refresh_physics(), pn.stitch(params),pn.display_alg_results('alg_name')
What this does is allows the user to completely interface with the network, if they wish. Look at the bottom of runscript_TG3 for a demo.
As Jeff would say, "This is either genius, or completely rediculous"