Remove the algorithm specialisations for certain range kinds; if performance dictates then these will be re-instated but am going for reduced code for the while. Added make_ type deduction functions and used these through the code.
Renamed range operation next to be successor, for consistency with iterators.