add test of translating list into memoryview slice of structs

this only uses structs there is no dependence on numpy ;-)
add automatic translation of a component to a struct format string
add get_native_component method to produce native components
add a method to create the component list
add default translator that just returns the same components
add a todo
move translator into new Native_component_list and test
add ability for a component list to filter itself using a predicate
add translation of components to native format including tests
Component lists are now filtered using build_filtered_copy

this will allow component lists to preserve  native format information
when they are filtered
dihedral force calculator takes native components and doesn't precompile

previouly dihedral components were compiled dwn to native on first call