Hydroponics rewrite.

Thread is here: http://baystation12.net/forums/viewtopic.php?f=5&t=10921

This is a near-total Hydroponics rewrite. It isn't finished but it covers the functionality currently existing on the server and more.

COMPLETED FEATURES
------------------

HYDROPONICS
- Closed hydro trays are now possible, taking atmospherics from a portables connector beneath them.
- Lysis-isolation centrifuge and ballistic delivery system are in, allowing for gene modifications.
- The plant analyzer has been rewritten from the ground up to be more useful and immersive.

SEEDS AND PLANTS
- Seed/plant/product data is stored in a set of global seed datums.
- These datums can diverge to form new species and be manipulated via genetic engineering.
- These datums handle harvesting and mutating independantly of hydroponics trays.
- Mutant species varieties are now handled in a modular way.
- Plants now have ideal heat, light and pressure values, as well as tolerances for differences.
- Plants can produce multiple different kinds of product.
- Reagent information is held in the datums rather than the product item.
- Arbitrary living products are now possible (current legit case is dionaea).
- Bioluminescent plants and vines are both possible.

SPACE VINES
- Space vines are now plantsegments pathwise in view of future intentions to make them more general.
- Spawned event kudzu should be identical to the current master implementation as it has no seed datum and ignores all the new code.
- Space vines now make use of seed data if spawned with a reference and can be harvested from.
- Vines now cause physical damage if they are carnivorous, and inject reagents if their seed data includes them.
- Vines will die if they find themselves in area outside of their tolerance.

KNOWN BUGS
- Poppies have no growing icons.
- Analyzer needs testing.
- Mutation proc needs testing.
- EVERYTHING needs testing, I've done a ton locally but it badly needs a shakedown.

TO BE DONE
----------
Add seed line naming/labelling to extractor.
Generalize wall rot/glowshroom spread systems and allow arbitrary seeds to use them.
Generalize vine and mold icons for all plants to use.
Implement the capacity for plants to cool/heat their room and exude or consume gasses.
Update all seed datums to have all features of pre-revamp plants they represent.
Update all mushrooms and weeds to consume or not consume water/nutrients as required.
General time/numbers rebalancing, this will probably need to wait for dev for decent data.
Stuff like that should be moved to initalize()
That way it will for sure be called after everything else had their New()