Removed some leftover debugging console writelines.
Fixes a bug where the bonds for adjacent branches weren't being created properly

Think of branching like this:
+ Opening a branch means continue as normal but make a note of 'something' now
which will tell us how to make the bond after we close the branch
+ Close the branch means look up the 'something' we stored earlier so it's
there ready for us to use on the next bond.

Now, the 'something' is actually 'the index that the next atom is about to be
bonded to' because when the branch is closed the next atom after the close will
be bonded to the same place. In a lot of cases it's the index of the last atom
but not when there's two adjacent branches...

E.g., C(C)(C)C when the second branch is opened the index of the last atom is 1,
but (because we've just closed a branch) the next atom is about to be bonded to
the 0th atom so that is also where the next atom after the second branch is closed
should get bonded to! In fact, the BondTo value is exactly what we want. This
tells us the index that the next atom is going to be bonded to (or, if it's None,
then use the index of the last atom).

I've moved the logic for interpreting BondTo in this way out of Molecule
a) To avoid duplication as it's used when adding an atom and when opening a branch
b) It feels nicer that Molecule is quite a dumb record which just does as it's told

(I also discovered the 'defaultArg' function which can replace the pattern matching
when all we want is to unwrap the value in the option or return a default value
if it's None)