Fix class export for serialization and DLLs.

BOOST_CLASS_EXPORT is good only for one module projects.
For DLLs the class export needs to be split to BOOST_CLASS_EXPORT_KEY
and BOOST_CLASS_EXPORT_IMPLEMENT as described in
http://www.boost.org/doc/libs/1_47_0/libs/serialization/doc/traits.html#export
Add space-group symmetry aware structure adapter.

So far only a preliminary interface.
Simplify - no need to cast shared_ptr of (this).
Start implementing the CrystalStructureAdapter class.
Use AtomVector typedef for the Atom storage type.
Implement CrystalStructureAdapter.

CrystalStructureBondGenerator needs to be finished yet.
Shift anchor sites to the unit cell in PeriodicStructureBondGenerator.

Also make PeriodicStructureBondGenerator skip deselected sites.
Zero cell fractional coordinates that are very close to 1.
Add isSymmetryCached method to CrystalStructureAdapter.

Detect symmetry is out-of date when number of atoms in the asymmetric
unit changes.  Also add public method getEquivalentAtoms.
Assume P1 when CrystalStructureAdapter has no symmetry operations.
Implement bond generation over symmetry sites.

Not teststed, probably still buggy.
PointsInSphere data in PeriodicStructureAdapter made protected to
let CrystalStructureAdapter use them.
Added typedefs for the new structure adapters.
PythonStructureAdapter.hpp is good with incomplete types.
Finish CrystalStructureAdapter and bond generator.

Averaged fractional coordinates of equal sites must be in unit cell
otherwise they may sum up to zero.

Fixed assorted bugs in bond generation for CrystalStructureAdapter.
Adapt ObjCryst::Crystal with CrystalStructureAdapter.

Removed ObjCrystStructureAdapter and ObjCrystBondGenerator and replaced
them with CrystalStructureAdapter.