Change log:
- Reformatted `crystal17.main` and `crystal17.basic` to use run program directly from `crystal` executable (rather than the `runcry` script)
- added restart functionality to `CryMainCalculation` (*via* a fort.9 in a remote folder)
- added checks and error codes for PbsPro messages to `_scheduler_stderr.txt` (e.g. walltime limit reached)
- allow SHRINK IS input to be a list ([IS1, IS2, IS3])
- added output of `TrajectoryData` of optimisation steps for `CryMainCalculation`
- Wrote internal stdout parser for `crystal17.main`
- This builds and improves on the original ejplugins implementation: making the parsing flow more easy to understand, adding additional data parsing (some taken from tilde), and restructuring the output json
- added `CryMainBaseWorkChain` (a replica of `PwBaseWorkChain` from `aiida-quanumespresso`)
- Added `crystal17.doss` and `crystal.fermi` calculations, and `CryPropertiesWorkChain`
- also added add band gap calcfunction
- Improved `crystal17.sym3d`
- Standardised GULP potentials and rewrote `PotentialData`
- all potentials now share the a common jsonschema
- the full potential file is created and stored in the repository
- refactored reaxff read/write
- added fitting data input
- Added `GulpFittingCalculation`
- Added some helpful methods for manipulating StructureData
- Rewrote immigration functions (to use `aiida-core v1` mechanics)
- Restructure tests into central location and added many more
- Updates Documentation and removed `graph.py` (now in aiida-core)