Add basic crystallographic support.

This adds a simple UnitCell class, adds a hook into Core::Molecule,
and creates a CrystalTools algorithm collection, which is a port of
various crystallographic algorithms from Avogadro 1's crystallography
extension and XtalOpt.

The Crystal extension exposes much of the CrystalTools functionality
to the user, and the CrystalScene scene plugin provides simple
unit cell rendering.

Change-Id: Ib7c945cbed452287ce5ad77114529a6723462656
Make the CML reader unit-cell aware.

Change-Id: I2405beaf90b16344637bbc6f46e8e9a0982b457f
Rename cartesian editor to coordinate editor.

I'm about to add fractional (lattice) coordinates, which aren't quite
cartesian.

Change-Id: I060d245d971dd8f46f1140de217447bcda15c3d3
Extend coordinate editor to support fractional coordinates.

Change-Id: I4861de7fb11e68b5205a530f3124fd57031658ce
A few minor fixes for code style

Change-Id: I6104c3950212f6e2b8d9305522ed44979ae9dffc
Merge topic 'crystal-support' into master

bc996439 A few minor fixes for code style
530d16e7 Extend coordinate editor to support fractional coordinates.
ef14f543 Rename cartesian editor to coordinate editor.
62849006 Make the CML reader unit-cell aware.
6b925908 Add basic crystallographic support.