don't test hydrogen bond potentials with test without test data
correct allocation an resizing of hydrogen bond energy list
add a method to remove a sub potential from xcamshift for testing
the active components for the hydrogen bond potential be all components

this is a temporary measure till the code for selecting sub components
is improved
add the hydrogen bond potential tests to the test suite
remove duplicate get active components method from hbond potential
remove unused code in build selected components in non bonded  potential
make the main loop of __call__ in hbond energy calculator nogil

this ensures that all code is in c and will allow parallelisation
random coil shifts are not defined for PRO N in camshift tables
 _build_native_component_offsets allows for non contiguous ids
 
as some components lists have components whose index doesn't increment
monotonically  e.g RING COEFFS this can leave gaps in the sequence of
component offset which are indexed by component id. However the native
cython implementation uses pointer arithmetic to look up components, so
leading to a crash as COEF components are at the wrong offset...

This could be avoided using an index for coefs as opposed to component
offset

first detected with michelle's myosin sh3 domain
centralise  Xcamshift creation in gb3 tests & remove HBOND pot if needed

note some test don't have data for hbond  chemical shifts. Even in cases
where data is provided from instrumented camshift instances and then not
currently used, the hbonds calculated by xcamhift the hbond shifts
calculated by camshift 1.35 will not agree.  This because the hbonds in
camshift 1.35 have some problems: no hbonds in the first and last
residue and hbonds to non hbonding atoms...
make Fast_hydrogen_bond_shift_calculator() nogil and mostly native

using a nogil section forces compilation and ensures the use of native
variables...
add two TODOs
hbond prepare allocates data arrays correctly [BUILD BROKEN]
add prepare STRUCTURE_CHANGED to Xcamshift.__init__ [BUILD FIXED]

note this may cause some data structures to be allocated twice....
needs fixing
reduce number of decimals tested in hbond shift testing for reliability

7->5 dp, added a TODO could we increase dps again...
indexers are now shared across contexts in one hbond factory for speed

otherwise the indexer was being created foe every context which ius very
slow as it iterates the complete backbone
add __str__ method to coef components for ring calculators
modify backbone base table to use PRO CD as a surrogate remote HN atom
correct bug in distance potential __str__ function