Add method to atom to calculate Lewis acid/base vacancies
Add method to molecule to convert zero-order bonds to single or double bounds and adjust adjacent charges accordingly.
Add ZBO, ZCH, HYD extensions to MDL format
Stop AddHydrogens from resetting the ImplicitValencePerceived flag
Fix bug where unnecessary HYD values were written in MDL format
Remove leftover logging statements
Fix indentation
Merge remote-tracking branch 'upstream/master' into mdlextension
Made the CairoPainter object a private variable to the class again instead of a local var in WriteMolecule(). I got errors when trying to depict multiple molecules otherwise.
Made hash bonds draw with line width 1, required adding the function GetPenWidth to the different painters to be able to reset the pen width after drawing the bond.
Added the -b and -B options to pngformat to allow changes of colors when creating pngs.
Added -xm option for possibility to "crop" output image to a close bounding box of a single molecule.
Changed the metrics calculation in cairopainter to give nicer layout of text labels with sub and superscripts.
Appended .md to README
CIF output wraps fractional coordinates to [0, 1]

Some crystallographic software with weaker CIF parsers will error if
atoms are not in [0, 1].

Also, whitespace edits. Tabs and trailing whitespace are bad.
Improved duplicate atom testing in `OBUnitCell::FillUnitCell`

Previous implementation was O(N^2), checking the distances of atom-atom
combinations. It regained speed by only checking atoms against their
symmetric counterparts.

This implementation is amortized O(N), using a hash function. It uses
the extra speed to check every atom-atom connection, which handles a
series of corner-case issues (e.g. input cif file having duplicate
atoms, mirrored symmetry expansions).

Note that this could be improved even further, but it would require
some heavier edits to openbabel. The best approach uses an octree, of
which there are existing implementations.
Added atomic number to FillUnitCell hash method
Aesthetic spacing alignment edit to CIF

Replaced "    %3s  %3s  %10.5f %10.5f %10.5f %10.3f\n" with "
%-8s%-5s%.5f%10.5f%10.5f%8.3f\n", ensuring everything stays aligned.
Fixed OBMol::Center segfault issue

There were two different implementations, and one was dependent on
private variables that didn't necessarily exist. Now there is only one
implementation, and it's the one that doesn't segfault.
Improve space group support in .car files

- Support Hermann-Mauguin notation space groups with spaces and also
  the unspecified default space group.

- HM space group is enclosed within parentheses and can contain space
  between them as per the given format details in -
  http://hincklab.uthscsa.edu/html/soft_packs/msi_docs/insight980/formats980/ClassicFiles.html.

  The previous code didn't recognize such a spacegroup as it strictly
  looked for 8 fields after tokenizing them using default delimiters as
  space, tab, newline.

- It is legal to have .car files with PBC=ON and no space group defined
  in the fifth line and just have PBC and a,b,c,alpha,beta,gamma
  parameters. Such structure is considered to have lowest symmetry
  space-group as P1. This means there are no symmetry operations in play
  and all atoms are explicit within the unit cell. The .car files for
  H2O and polymers fall under this category since they are amorphous but
  are periodic.

- Added tests to ensure this is working.