Refactored MoleculeBuilderDissector to accept the value as a parameter

Instead of returning it. This will come in handy when I implement
IndexOutOfBoundsException handling.
Added IndexOutOfBoundsException handling to SequentialAdder.
Finished implementing handling out-of-bounds errors with SequentialAdder - the wrong way

Only committing this in case I need to look at it later. This approach
doesn't work, because if MoleculeBuilderDissectors don't throw in
any case, then adding a MoleculeBuilderDissector in a SequentialAdder
will never abort, and truncation won't work properly.
Added a hasChildren method to MoleculeBuilder for future use.
Refined MoleculeBuilderDissector.dissect's return type to (Molecule, Value).

Because I could, and it makes sense.
Redid IndexOutOfBoundsException handling in SequentialAdder.