arrays are now passed into Fast_non_bonded_shift_calculator __call__
add void return and type definitions to _cython_calculate_ring_forces
add void return to  _cython_calc_target_atom_forces
_build_cython_force_terms takes a Ring_force_sub_terms 'ref' parameter

currently the ref is a pointer due to problems with cython and refs
_calculate_single_ring_forces now declared to return void
_ring_calc_single_force_set declared to return void
Fast_ring_force_calculator _do_calc_components returns void & uses array
cleanups  Fast_dihedral_force_calculator _dihedral_calc_single_force_set

add void return and missing type declaration
tidy Fast_dihedral_force_calculator_cython_calc_single_force_factor

add a return type and type declarations
tidy Fast_non_bonded_force_calculator _non_bonded_calc_single_force_set

add declarations and return type
tidy Fast_dihedral_force_calculator _do_calc_components 

gets void return and array parameters also modify related functions
which share the same signature and allocate arrays in place of lists
where required
add void return to _non_bonded_calc_single_force_set
add void return to _distance_calc_single_force_set
add type declaration for counter in _sum_xyz_distances_2
remove unused method _get_or_make_target_force_triplet
make __call__ in Base_force_calculator use arrays
__call__ in Fast_force_factor_calculator uses arrays and is profiled

plus associated changes (allocating arrays not lists) to make tests run
add type definitions and profiling to Fast_energy_calculator __call__
profile __call__ in Fast_ring_data_calculator
Fast_ring_data_calculator _average_2_vec_3 gets a void return