Convert Molecule API to match RWMolecule.

This change required the following:
* Various new methods in Molecule.
* Replace Core::Atom, Core::Bond with templated implementation.
* Same for the QtGui::Persistent* variants.
* Added ++, -- operators for Atom/Bond.
* Replaced std::vector in Molecule with Core::Array

Change-Id: Ifb071b9a69a1faddac7c615a5675cc17f1cabb80
Merge remote-tracking branch 'master' into editable-molecule

Conflicts:
	avogadro/qtgui/persistentatom.h
	avogadro/qtgui/persistentbond.h

Change-Id: Ie58db5b4ec9ce9f0699e7323f2736a754c84796e
Merge topic 'editable-molecule' into master

2de941a3 Merge remote-tracking branch 'master' into editable-molecule
268887da Convert Molecule API to match RWMolecule.