Add the BSD licensed mdlvalence.h header from RDKit.

This implements a simple valence model.

Change-Id: I87c1b3d57a94a951c2f47dd9e2325e1dd820801f
Modifications to mdlformat.h.

* Use a types that are match other code (e.g. unsigned char for
  atomic number).
* Improve documentation.
* Some style clean up. I left the one-line case/if/return/break
  statements in some places, invoking the OpenChemistry coding
  style's infamous General Exception.
* Add an atomValence method that indicates overbonded atoms.

Change-Id: I28a8d721f06a24bc92dc04251a18b22188599eb1
Fix Molecule::formula for single atom cases.

This fixes the method to return H2O instead of H2O1, etc.

Change-Id: Ifd210da5cb976eabd2878000eabde26294d4ca95
Move remove/clear methods into Core::Molecule.

These are needed to get hydrogen fixup working.

Change-Id: I8378e1af4ce2e989ce2b923970e4e09c37897cd4
Add utilities for adding/removing hydrogens.

Change-Id: Ia93c3ad54086b078343dc2a81e749e67757b4f69
Add an extension with Fixup/Remove Hydrogens menu items.

Change-Id: I6750d99604e1b2a84bc7541c743c44bfd33ea24b
Merge topic 'valence-model' into master

31da2229 Add an extension with Fixup/Remove Hydrogens menu items.
507e20c4 Add utilities for adding/removing hydrogens.
bdfa351d Move remove/clear methods into Core::Molecule.
e432f2bf Fix Molecule::formula for single atom cases.
684c2364 Modifications to mdlformat.h.
63118f2b Add the BSD licensed mdlvalence.h header from RDKit.