add prepare mechanism for calculators to invaidate caches

this will not be permanent and will be removed when the cache
calculation is moved back into the python code. This is because
calculators are supposed to be quite primitive... ie they don't need to
know about the state of the system they just get handed the correct data
to work with
make this long running test fail fast
remove redundant call to set fast attribute
remove bad argument to run_tests should be an argument to unittest.main
correct use of incorrect atom index in non bonded calcualtor
replace remaining untyp force output arrays by object by Out_arrays
initialisation of native components is now in __cinit__
components are now freed properly when _prepare is called
fix incorrection selection of atoms for 5 member rings
tidier imports
more useful set of default tests when developing

this basically emphasises testing the whole energy and the forces and
the sub potential force components:  
  1. test_total_forces_and_energy_10_step 
  2. test_force_components

the flags used require python 2.7 but could be replaced by a try catch
on exit
cleanup of testing code including removal of fast flag
cleanup and remove references to the fast flag
add Vec3_list based on CDSVector for storage of normals and ring centres
Vec3_list used for ring centres & normals in shift and force calculators
move component init to __cinit__ for Fast_distance_based_potential....
active target atom ids should be in a defined order...
add a todo
get_boxes notifies component list changes so prepare can be called

this its temporary and will eventually be repaced by a mechanism that
doesn't require self._prepare(TARGET_ATOM_IDS_CHANGED each time the non
bonded list is updated
xcamshift gets a freeze flag so _prepare is not called when frozen