Merge pull request #1 from MuMech/dev

rebase to mumech/dev
new info item: total intakeair available

An item I've sometimes wanted, and which tavert refered to in #52, how
do we know how much air we have left?  This patch adds the ability to
know how much airflow we'd have if we opened all intakes.
fix issue #52: recursive symmetry screws up intake mgmt

Intake management opens symmetric groups of intakes.

However, the data model I rely on screws up when you recursively attach
a symmetric group.  E.g. make a fuselage, attach a symmetric pair of
intakes on cubes.  Save it as a sub-assembly.  Now add the sub-assembly
with symmetry on a bicoupler.  There are four intakes ABCD; A has as
symmetryCounterparts B and C.  D has as symmetryCounterparts A and B.
So when you open the first group of intakes, you get ABC opened.  Maybe
that's enough air, so you close the second group, which closes ABD.
You're left with just C open, which is not enough air.

Solution: compute groups via the transitive closure.  So this makes one
group ABCD, which is open or closed.
Merge pull request #217 from numerobis/numerobis-issue-52

Fix issue #52: recursive symmetry breaks intake management