ring potential no longer needs its own calc_shifts or calc_force_set
add simple timing code
simplify non bonded calculator, remove need for separate calc_shifts etc

added a new method _get_active_components which may disappear when
active_components is no longer a parameter to calc_shifts and
calc_force_set but becomes part of the component structure accessed by
_get_components
remove updates in constructor which aren't needed
remove redundant code and update  tests
change force calculator to use indexes to lookup target atom ids

this is in preparation for using indices to lookup data from the
constant cache
use None to imply all targets to avoid building big redundant selections
components are now selected from the active target ids 

indices into the   active target atom ids should match indices into the
constant cache
updates to energy term cache now triggered by events via _prepare
Change the fast energy and force calculators to use native coefficients
tidy up space and declarations
remove redundant selected atoms field from xcamshift

all tests still pass without this
active target atoms are only calculated once after each change

note: there remains a hack in _calc_single_atom_energy because the
target atom ids are not updating correctly

this is at least partially related to the fact that there is a dichotomy
between the active target atom ids when calculating chemicals shifts on
their own (could be any atom) and when calculating shifts for forces and
energies(should only be shifts for which we measured chemical shifts)
Also there is the need to update component to result in each potential
which is most probably redundant... [it is only used to lookup force
factors...])
use native observed shifts for Energy & Force factor calculators
calculated shifts are now stored in native array

note(1): timings can be as fast as 16-17ms per calcEnergyAndDerivs
    (2): _calc_single_atom_energy and the energy calculator work, but
         they are mess for calculating single atom energies and need an
         overhaul
better timing code that doesn't set the shift_cache and loops more times

this was a redundant call that was increasing the runtime