remove calcEnergy method use ensemble based calcEnergy

note calcEnergy now becomes _calc_energy all calls to calculate an
energy pass through pyEnsemblePot and the ensemble code
add missing pyEnsemblePot changes for access to ensembleSimulation
ensembleSimulation is now transmitted through to calculators

for access to member simulation
add a todo
_set_components
Cython_shift_calculator now uses an external simulation to access coords
add code to print exceptions (could be improved)

the exception should realy be propogated
add missing interface to calcEnergy
create a C++ shim to interact with shared vector creation and clearing

this file overcomes some typing problem in cython and should eventually
e removed
chemical shifts are now shared between simulation vi a CDSVector
simulation should be  NULL not simulation in constructor
EnsembleSimulation  now inherits from Simulation

ist really wasn't clear how to do this from the cython docs...
simulations are now propagated from the potential into subpots and calcs

sub-potential and calculators need the potentials ensemble simulation to
access coordinates and the member index
add some todos
simulation is now a parameter to the constructors of shift calculators

this is be fine as a potentials ensemblePots simulation doesn't change
after it has been created
add access methods for ensemble size and member index
chemical shift are snow saved by member index in the result
compilation of sharedCDSVectorFactory wasn't being done in setup
forgot to use self.ensemble_array_offset in non bonded shift calculator
access to xplor is now via nogil interfaces