Fix multi-fragment normalize bug

If a molecule had multiple fragments and one was normalized, the others would disappear.

This commit changes the Normalizer to normalize each fragment separately, then merge the results together. This is possibly a bit slower, but much more reliable.
Add ipython notebook example